在Pandas中,你可以使用 groupby
和 ngroup
方法来为DataFrame数据列添加连续序号,并且使相同的数据共享相同的序号。ngroup
方法会为每个组分配一个唯一的序号,从0开始递增。
以下是一个示例代码,展示如何高效地为DataFrame数据列添加连续序号,并使相同数据共享相同序号:
import pandas as pd
# 示例数据
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'baz', 'baz']}
df = pd.DataFrame(data)
# 使用groupby和ngroup为相同数据分配相同的序号
df['序号'] = df.groupby('A').ngroup()
print(df)
输出结果:
A 序号
0 foo 0
1 bar 1
2 foo 0
3 bar 1
4 foo 0
5 baz 2
6 baz 2
groupby('A')
: 按照列 A
进行分组。ngroup()
: 为每个分组分配一个唯一的序号,从0开始递增。df['序号']
: 将生成的序号赋值给新列 序号
。ngroup
方法默认从0开始编号,如果你希望从1开始编号,可以在结果上加1:df['序号'] = df.groupby('A').ngroup() + 1
。groupby
和 ngroup
是Pandas内置的高效方法,适用于大多数情况。如果你的数据集非常大,可以考虑使用Dask等分布式计算框架来进一步提升性能。通过这种方式,你可以高效地为DataFrame数据列添加连续序号,并使相同数据共享相同序号。