Pandas groupby 多列基础日期列按纪元周
Posted
技术标签:
【中文标题】Pandas groupby 多列基础日期列按纪元周【英文标题】:Pandas groupby multiple columns basis date column by epoch week 【发布时间】:2020-07-30 18:23:46 【问题描述】:我想根据日期列总结我在数据框中获得的三列。这里的问题是总结应该基于纪元周范围。 例如:纪元第 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
【问题讨论】:
【参考方案1】:将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()
【讨论】:
太棒了!谢谢! 还有一件事,我怎样才能得到 sum_A、sum_B 列的总计? @Django0602 - 你能在问题中添加预期的输出吗? 我已经添加了预期的输出。仅在计算周数后才会显示总数。 完美!谢谢!以上是关于Pandas groupby 多列基础日期列按纪元周的主要内容,如果未能解决你的问题,请参考以下文章