如何使用 NumPy 和 Pandas 给重复数据加相同序号?
根据一列数据加序号,相同数据加相同序号
你想要根据一列数据添加序号,使其上下相同数据具有相同的序号,而不同的数据则顺序递增。
以下是如何使用 numpy 和 pandas 实现这个功能:
import numpy as np import pandas as pd # 创建一个 dataframe,其中有一列数据要加序号 df = pd.dataframe({ 'data': [11, 21, 24, 24, 24, 24, 25, 25, 26, 26, 26, 26, 23, 26, 26, 26, 26, 20, 26, 26, 26, 26], 'nums': 0, }) # 使用 np.cumsum() 累加数据变化时的值,即不同的数据 df['nums'] = np.cumsum(df['data'].diff() != 0) # 输出结果 print(df)
输出:
data nums 0 11 1 1 21 2 2 24 3 3 24 3 4 24 3 5 24 3 6 25 4 7 25 4 8 26 5 9 26 5 10 26 5 11 26 5 12 23 6 13 26 7 14 26 7 15 26 7 16 26 7 17 20 8 18 26 9 19 26 9 20 26 9 21 26 9