我有以下熊猫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+..)
请任何帮助将不胜感激。非常感谢。
答案 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