You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas按日期分组统计事件时将周起始设为周日

调整Pandas周统计的起始日为周日

没问题,这事儿好办!你现在遇到的是Pandas默认周周期(周一到周日)不符合需求的情况,要改成周日到周六的周范围,只需要在分组时指定对应的周频率即可。

核心思路

Pandas的to_period("W")默认采用的是W-SUN频率(每周日结束,对应周范围周一到周日)。要改成周日起始、周六结束的周,我们需要指定频率为W-SAT(每周六结束,自然周范围就是上周日到本周六)。

修改后的代码

把你原来的代码稍作调整,替换周频率参数:

df['date'].groupby(df.date.dt.to_period("W-SAT")).agg('count')

执行这段代码后,分组结果的周范围就会变成你期望的2018-04-15/2018-04-21、2018-04-22/2018-04-28格式,统计的数量也会和原数据对应上。

另一种灵活写法(用pd.Grouper)

如果你需要更灵活的分组控制,也可以用pd.Grouper来实现:

df.groupby(pd.Grouper(key='date', freq='W-SAT'))['date'].count()

效果和上面的代码完全一致,只是写法更偏向于显式分组配置。

验证逻辑

举个例子:原数据中2018-04-16(周一)到2018-04-22(周日)的40条数据,会被W-SAT频率分到2018-04-15/2018-04-21这个周日到周六的周期里;而原2018-04-23(周一)到2018-04-29(周日)的数据,其中2018-04-23到2018-04-28(周六)的部分会进入2018-04-22/2018-04-28周期,完美匹配你的期望。

内容的提问来源于stack exchange,提问作者Imsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:10:42