如何使用Pandas为列中的重复值添加编号标注
解决方法
你可以用Pandas的groupby结合cumcount()方法快速实现这个需求,步骤如下:
- 分组生成组内序号
通过groupby按Index列的唯一值分组,再用cumcount()生成组内从0开始的累计计数,加1后让序号从1开始。 - 拼接原列值与序号
把原Index的内容和生成的序号拼接成新列。
代码示例
假设你的数据集存储在名为df的DataFrame中,原列名为Index:
import pandas as pd # 示例测试数据 data = {"Index": ["A", "A", "B", "C", "C", "C"]} df = pd.DataFrame(data) # 生成目标新列 df["New_Column"] = df["Index"] + "_" + (df.groupby("Index").cumcount() + 1).astype(str)
运行后得到的结果如下:
| Index | New_Column |
|---|---|
| A | A_1 |
| A | A_2 |
| B | B_1 |
| C | C_1 |
| C | C_2 |
| C | C_3 |
补充说明
- 如果你的
Index列不是字符串类型,需要先转换为字符串再拼接:df["Index"] = df["Index"].astype(str) cumcount()默认从0开始计数,加1是为了让编号从1开始,符合常规的标注习惯
内容的提问来源于stack exchange,提问作者strunge29
相关产品推荐
相关产品推荐

