在Python 3.6.3中,我具有以下数据框df1
:
dt Val
2017-04-10 08:00:00 8.0
2017-04-10 09:00:00 2.0
2017-04-10 10:00:00 7.0
2017-04-11 08:00:00 3.0
2017-04-11 09:00:00 0.0
2017-04-11 10:00:00 5.0
2017-11-26 08:00:00 8.0
2017-11-26 09:00:00 1.0
2017-11-26 10:00:00 2.0
我正在尝试计算这些值的每小时平均值,以便:
Hour Val
08:00:00 7.00
09:00:00 1.00
10:00:00 4.66
我的尝试
df2 = df1.resample('H')['Val'].mean()
返回与df1
相同的数据集。我在做什么错了?
答案 0 :(得分:2)
受以上评论的启发,我测试了以下对我有用的东西:
df.groupby(df.index.hour).Val.mean()
或者您可以将索引值设置为'timedelta'
dtypes
df.Val.groupby(df.index.hour.astype('timedelta64[h]')).mean()
dt
08:00:00 6.333333
09:00:00 1.000000
10:00:00 4.666667
Name: Val, dtype: float64