pandas 如何将numpy.float64数据放入 Dataframe ?

t5fffqht  于 2022-12-10  发布在  其他
关注(0)|答案(1)|浏览(261)

我有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个值。
我做错什么了吗?
我对这个很陌生,还在学习,如果能给我一个解释,我将非常感激。
谢谢你!

py49o6xq

py49o6xq1#

Mark Ransom在注解中指出了此问题。修复方法是在循环中将mean附加到rata

rata = []
for z in dfs:
    for x in tanggal:
        mean = z.loc[z['tanggal'] == x, 'harga'].mean()
        rata.append(mean)

在这一点上,rata将是一个列表,使得len(rata) == len(tanggal)*len(dfs)和第一、第二等 Dataframe 中harga跨tanggal的平均值分别在rata[0 : len(tanggal)]rata[len(tanggal) : 2*len(tanggal)]等中。
附带说明一下,如果你的数据只有一个列表(比如rata),考虑用panda.series代替。

相关问题