Pandas groupby multiple columns basis date column by epoch week

Pandas groupby multiple columns basis date column by epoch week

我想根据日期列总结我在数据框中获得的三列。这里要注意的是,总结应该根据纪元周范围进行。 例如:纪元第 14 周是从 2020 年 3 月 30 日到 2020 年 4 月 5 日,第 15 周是 2020 年 4 月 6 日到 2020 年 4 月 15 日,依此类推。 date_time 列已采用正确的日期时间格式。 纪元周可以在这里找到:epochweek

我的数据框如下所示:

   date_time                    A        B
0  01/04/2020  00:00:00         5        10
1  02/04/2020  00:00:00         5        10
2  03/04/2020  00:00:00         1        10
3  07/04/2020  00:00:00         2        10
4  08/04/2020  00:00:00         2        10
5  10/04/2020  00:00:00         3        10

输出应如下所示:

epoch_week       sum_A       sum_B
week14           11          30
week15           7           30
Total            18          60

Series.dt.weekofyear 与日期时间一起使用并汇总 sum:

g = pd.to_datetime(df['date_time'], dayfirst=True).dt.weekofyear

df = df.groupby(g.rename('epoch_week')).sum().reset_index()
print (df)
   epoch_week   A   B
0          14  11  30
1          15   7  30

编辑:

g = pd.to_datetime(df['date_time'], dayfirst=True).dt.weekofyear

df = df.groupby(g.rename('epoch_week')).sum()
df.loc['Total'] = df.sum()
df = df.reset_index()