如何按日汇总熊猫数据框

时间:2019-03-11 18:19:45

标签: pandas dataframe aggregate aggregate-functions pandas-groupby

我有以下熊猫DataFrame:

time,                value
2018-08-02 09:19:37, 2
2018-08-02 09:19:47, 3
2018-08-02 09:19:57, 6
......
2018-08-03 04:49:27, 2
2018-08-03 04:49:37, 4
2018-08-03 04:49:47, 5

我想构建一个输出dataFrame,如下所示:

time,                value
2018-08-02 11:59:59, AVG(2+3+6+..)
2018-08-03 11:59:59, AVG(2+4+5+..)

请任何帮助将不胜感激。非常感谢。

2 个答案:

答案 0 :(得分:1)

IIUC,使用:

m=df.groupby(df.time.dt.date).value.mean().reset_index()
m.time=pd.to_datetime(m.time.astype(str)+' 11:59:59')
print(m)

                 time     value
0 2018-08-02 11:59:59  3.666667
1 2018-08-03 11:59:59  3.666667

注意: 如果dtypes是string,请在上面的代码之前使用以下内容:

df.time=pd.to_datetime(df.time)
df.value=df.value.astype(int)

答案 1 :(得分:1)

您可以使用Resample

>>>df['time'] = df['time'].astype('datetime64[ns]')    
>>>df.resample('D', on='time').mean()
>>>        
time         value
2018-08-02  3.666667
2018-08-03  3.666667