Python如何为dataframe新增基于另一列分组的自增序列列
Pandas DataFrame 按分组生成自增序号解决方案
- 核心逻辑通过
groupby()结合cumcount()方法实现,完整代码示例如下:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'id': [1,1,1,2,2,3,3], 'X': [1,2,3,4,5,6,7] }) # 新增n列:按id分组生成从1开始的自增序号 df['n'] = df.groupby('id').cumcount() + 1
- 运行后输出结果如下:
id X n 0 1 1 1 1 1 2 2 2 1 3 3 3 2 4 1 4 2 5 2 5 3 6 1 6 3 7 2
cumcount()默认对每个分组内的行按原有顺序返回从0开始的计数,加1即可得到从1开始的自增效果,id切换时分组变化,计数会自动重置。
内容的提问来源于stack exchange,提问作者fcf
相关产品推荐
相关产品推荐

