熊猫DateTime计算每日平均值

时间:2020-06-16 15:55:24

标签: pandas math rows

我在熊猫DF中有2列数据,看起来像这样,其中“ DateTime”列的格式为YYYY-MM-DD HH:MM:SS-这是前24小时,但df是整整一年或8784 x 2。

        BAFFIN BAY      DateTime
8759    8.112838 2016-01-01 00:00:00
8760    7.977169 2016-01-01 01:00:00
8761    8.420204 2016-01-01 02:00:00
8762    9.515370 2016-01-01 03:00:00
8763    9.222840 2016-01-01 04:00:00
8764    8.872423 2016-01-01 05:00:00
8765    8.776145 2016-01-01 06:00:00
8766    9.030668 2016-01-01 07:00:00
8767    8.394983 2016-01-01 08:00:00
8768    8.092915 2016-01-01 09:00:00
8769    8.946967 2016-01-01 10:00:00
8770    9.620883 2016-01-01 11:00:00
8771    9.535951 2016-01-01 12:00:00
8772    8.861761 2016-01-01 13:00:00
8773    9.077692 2016-01-01 14:00:00
8774    9.116074 2016-01-01 15:00:00
8775    8.724343 2016-01-01 16:00:00
8776    8.916940 2016-01-01 17:00:00
8777    8.920438 2016-01-01 18:00:00
8778    8.926278 2016-01-01 19:00:00
8779    8.817666 2016-01-01 20:00:00
8780    8.704014 2016-01-01 21:00:00
8781    8.496358 2016-01-01 22:00:00
8782    8.434297 2016-01-01 23:00:00

我正在尝试计算“ BAFFIN BAY”的每日平均值,并且尝试了以下方法:

davg_df2 = df2.groupby(pd.Grouper(freq='D', key='DateTime')).mean()
davg_df2 = df2.groupby(pd.Grouper(freq='1D', key='DateTime')).mean()
davg_df2 = df2.groupby(by=df2['DateTime'].dt.date).mean()

所有这些方法产生的答案如下所示: 巴芬湾 日期时间
2016-01-01 6.008044

但是,如果您进行数学计算,则2016-01-01的正确平均值为 8.813134 。非常感谢您的帮助。我假设分组仅是一天或24小时,即可得出连续的每日平均值,但是上述3种方法显然正在查看我的8784 x 2 DF中的其他数据。

1 个答案:

答案 0 :(得分:0)

我只是用此代码运行了df,我得到了8.813134:

df['DateTime'] = pd.to_datetime(df['DateTime'])
df = df.groupby(by=pd.Grouper(freq='D', key='DateTime')).mean()
print(df)

输出:

            BAFFIN BAY
DateTime
2016-01-01    8.813134