我想根据一列数据打上序号,上下相同数据打相同序号?

作者站长头像
站长
· 阅读数 16

我想根据一列数据打上序号,上下相同数据打相同序号,不同数据序号+1,写了好久写不出来,有没有人教一下。

想要这样的效果

我想根据一列数据打上序号,上下相同数据打相同序号?

回复
1个回答
avatar
test
2024-07-20

这样?

import numpy as np
import pandas as pd

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,
})

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
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容