我有5个不同的 Dataframe ,其值如下:
| 唐加尔|科莫季塔斯|哈尔加|
| - -|- -|- -|
| 一个|贝拉斯·森巴科|一万二千|
| 2个|贝拉斯·森巴科|一万二千|
| 一个人。|贝拉斯·森巴科|一个人。|
| 三十一个|贝拉斯·森巴科|小行星11000|
(the每个 Dataframe 之间的唯一区别是“komoditas”列值具有不同的名称)
我使用此循环来获取所使用的5个 Dataframe 的平均值
for z in dfs:
for x in tanggal:
mean = z.loc[z['tanggal'] == x, 'harga'].mean()
rata = [mean]
print(rata)
DFS包含5个不同的 Dataframe 集合,IM试图从这些 Dataframe 集合中获得平均值。
tanggal是一组范围从(1,31)开始的值
在尝试运行它之后。我得到的结果是numpy.float64数据,如下所示:
【13916.6666666666666】【13916.66666666666】【13895.833333333334】【13901.041666666666】
我尝试使用以下方法将这些值转换为 Dataframe
df_rata = pd.DataFrame(rata, columns =['Harga Rata'])
但是当我这样做的时候,只有一个值显示为这样:
| | 哈尔加拉塔|
| - -|- -|
| 第0页|小行星13901.041667|
当我尝试使用
len(rata)
它只显示结果,因为变量中只存储了1个值。
我做错什么了吗?
我对这个很陌生,还在学习,如果能给我一个解释,我将非常感激。
谢谢你!
1条答案
按热度按时间py49o6xq1#
Mark Ransom在注解中指出了此问题。修复方法是在循环中将
mean
附加到rata
:在这一点上,
rata
将是一个列表,使得len(rata) == len(tanggal)*len(dfs)
和第一、第二等 Dataframe 中harga跨tanggal的平均值分别在rata[0 : len(tanggal)]
、rata[len(tanggal) : 2*len(tanggal)]
等中。附带说明一下,如果你的数据只有一个列表(比如
rata
),考虑用panda.series代替。