插件窝 干货文章 如何用Python高效地为数据列添加连续序号,使相同值拥有相同序号?

如何用Python高效地为数据列添加连续序号,使相同值拥有相同序号?

序号 相同 pandas column 831    来源:    2025-03-15

在Python中,你可以使用pandas库来高效地为数据列添加连续序号,并且使相同值拥有相同序号。以下是实现这一目标的步骤:

1. 安装pandas

如果你还没有安装pandas库,可以使用以下命令进行安装:

pip install pandas

2. 使用pandas为数据列添加连续序号

假设你有一个DataFrame,并且你想为某一列(例如column_name)添加连续序号,使相同值拥有相同序号。你可以使用pandasgroupbyngroup方法来实现。

import pandas as pd

# 示例数据
data = {'column_name': ['A', 'B', 'A', 'C', 'B', 'A', 'C']}
df = pd.DataFrame(data)

# 为相同值添加连续序号
df['序号'] = df.groupby('column_name').ngroup()

print(df)

3. 解释代码

  • groupby('column_name'):按照column_name列进行分组。
  • ngroup():为每个分组分配一个唯一的整数序号,相同值的分组会得到相同的序号。
  • df['序号']:将生成的序号添加到新的列中。

4. 输出结果

运行上述代码后,DataFrame将会新增一列序号,其中相同值的行将拥有相同的序号。

  column_name  序号
0          A    0
1          B    1
2          A    0
3          C    2
4          B    1
5          A    0
6          C    2

5. 进一步优化

如果你希望序号从1开始而不是从0开始,可以在ngroup()的结果上加1:

df['序号'] = df.groupby('column_name').ngroup() + 1

6. 总结

通过使用pandasgroupbyngroup方法,你可以高效地为数据列添加连续序号,并且确保相同值拥有相同序号。这种方法在处理大数据集时非常高效。