【发布时间】:2018-03-14 02:38:07
【问题描述】:
我有一个看起来像这样的大型数据集:
Year Month Day Hour Count Value
2017 1 1 1 59 0
.. .. .. .. .. ..
2011 12 29 23 60 12
我正在尝试使用 Pandas 为同一月、日和小时的 Value 列生成平均值。
我以前用过这个:
df = pd.read_csv('pathtofile/values.csv')
df1 = df.groupby([df.Month,df.Day,df.Hour]).mean()
然而,新的 df1 不会对 Value 列进行平均,但它确实提供了 Count 和 Year 列的平均值(我不感兴趣)。我认为这与“值”列中的数据有关,因为大多数值为零。我尝试用空值替换所有零值,但无济于事。
我有什么遗漏的吗?
【问题讨论】:
-
df1= df.groupby(['Month','Day','Hour']) 然后执行 df1['Value'].mean()
-
值列实际上是数字吗?检查
df.info() -
@PaulH 这似乎是问题所在。它是一个“对象”类型,而不是像其他值一样 Int64。我在下面接受为正确的答案将它转换为一个浮点数,它能够成功地提供平均值。谢谢!
标签: python pandas dataframe data-analysis pandas-groupby