我的数据框如下:
datetime Owner Weight Score
2020-11-01 00:00:00 AC 40 40
2020-11-01 03:00:00 AC 40 50
2020-11-01 12:00:00 AC 30 45
2020-11-02 06:00:00 AC 20 30
2020-11-02 12:00:00 AC 20 30
2020-11-02 18:00:00 AC 20 30
我想汇总每个日期。
预期输出:
date Owner Weight Score
2020-11-01 AC 110 135
2020-11-02 AC 60 90
我的状态:
答案 0 :(得分:1)
将to_datetime
与Series.dt.date
一起使用并汇总sum
:
df['datetime'] = pd.to_datetime(df['datetime'])
df1 = df.groupby([df['datetime'].dt.date.rename('date'), 'Owner']).sum().reset_index()
print (df1)
date Owner Weight Score
0 2020-11-01 AC 110 135
1 2020-11-02 AC 60 90
带有Grouper
的替代解决方案:
df['datetime'] = pd.to_datetime(df['datetime'])
df1 = df.groupby([pd.Grouper(key='datetime', freq='D'), 'Owner']).sum().reset_index()
print (df1)
datetime Owner Weight Score
0 2020-11-01 AC 110 135
1 2020-11-02 AC 60 90