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

如何基于Year和Week of Year唯一组合生成累计序号列Week Order

解决方法

首先是你提供的原始数据代码:

import pandas as pd

df_dict = {
    'Year' : [2021, 2021, 2021, 2021, 2022, 2022, 2022, 2022],
    'Week of Year' : [1, 1, 2, 2, 10, 10, 11, 11]
}
  
df = pd.DataFrame(df_dict)

要生成Week Order列,对Year和Week of Year的唯一组合进行连续累计编号,这里有两种简单的实现方式:

方法一:使用pd.factorize()

通过将两列的组合转为元组,再用factorize生成连续标签,最后加1让编号从1开始:

df['Week Order'] = pd.factorize(df[['Year', 'Week of Year']].apply(tuple, axis=1))[0] + 1

方法二:使用groupby+ngroup()

按Year和Week of Year分组后,用ngroup()直接获取组的序号,同样加1调整起始编号:

df['Week Order'] = df.groupby(['Year', 'Week of Year']).ngroup() + 1

执行任意一种方法后,得到的结果如下:

Year  Week of Year  Week Order
0   2021             1           1
1   2021             1           1
2   2021             2           2
3   2021             2           2
4   2022            10           3
5   2022            10           3
6   2022            11           4
7   2022            11           4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:35:18