大熊猫:按小时频率正确重新采样数据

时间:2018-09-06 16:07:39

标签: python pandas datetime

在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相同的数据集。我在做什么错了?

1 个答案:

答案 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