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()
我想根据日期列总结我在数据框中获得的三列。这里要注意的是,总结应该根据纪元周范围进行。 例如:纪元第 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()