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

如何在DataFrame中创建记录ID值出现次数序号的新列?

实现DataFrame中id出现次数的序号式计数

你可以用pandas的groupby()结合cumcount()方法来实现这个需求,具体操作如下:

  1. 核心逻辑:按id分组后,对每组内的行按出现顺序累计计数(默认从0开始),最后加1得到从1起始的序号。
  2. 代码示例:
import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'id': [123456, 987641, 123456, 987641, 123456, 123456, 212212]
})

# 创建occurence列
df['occurence'] = df.groupby('id').cumcount() + 1

print(df)

执行后输出结果与你要求的格式完全一致:

id  occurence
0  123456          1
1  987641          1
2  123456          2
3  987641          2
4  123456          3
5  123456          4
6  212212          1

补充说明

  • groupby('id'):将DataFrame按id值分组,每个唯一id对应一个独立分组。
  • cumcount():对每个分组内的行按出现顺序生成从0开始的连续整数。
  • 加1是因为你需要的序号从1开始,而非默认的0起始。

你提到的Counter或value_counts()仅能统计每个id的总出现次数,无法实现按行顺序标记序号,上述方法正好解决了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:45:40