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

Python按ID分组根据日期计算自增周序号及年周数实现问题

解法说明

1. 修正周数(Week_of_Year)计算

你当前使用的dt.week默认以周一作为一周起始,不符合要求的周日为起始规则,替换为以下代码即可:

df['Week_of_Year'] = df['Date_time'].dt.strftime('%U').astype(int)

Python的strftime格式符%U本身就以周日作为每一周的第一天,计算出的周数完全符合你的需求。

2. 按ID分组计算自增周序号(Week_Number)

你原有代码的问题在于分组逻辑错误:你按全局周维度分组,没有按ID分组,也没有生成组内自增序号的逻辑。正确实现如下:

  • 首先确保每个ID下的日期按升序排列(如果你的数据已经按ID+日期排序可跳过这步)
df = df.sort_values(['ID', 'Date_time']).reset_index(drop=True)
  • 按ID分组后用cumcount生成组内自增序号,加1即可得到从1开始的周序号:
df['Week_Number'] = df.groupby('ID').cumcount() + 1

以上代码运行后即可得到你给出的预期输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:30:02