熊猫有条件分组依据

时间:2020-10-20 05:41:37

标签: pandas

我的数据框如下:

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

我的状态:

  1. 我要从datetime中提取日期
  2. 按数据和所有者分组(删除日期时间后) 有什么更好的方法

1 个答案:

答案 0 :(得分:1)

to_datetimeSeries.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