Pandas groupby 累积计数

spi*_*edd 3 python pandas

如何对 id 和 name 两个分组进行 cumcount?例如我有:

id  name
1   name1
1   name1
1   name2
2   name3
2   name3
2   name3
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像:

id  name   cumcount
1   name1  1 
1   name1  2
1   name2  1
2   name3  1
2   name3  2
2   name3  3
Run Code Online (Sandbox Code Playgroud)

基本上是 id 中每个名字的运行记录。

Psi*_*dom 5

您可以使用groupby.cumcount

df['cumcount'] = df.groupby(['id', 'name']).cumcount() + 1

df
#  id   name    cumcount
#0  1   name1   1
#1  1   name1   2
#2  1   name2   1
#3  2   name3   1
#4  2   name3   2
#5  2   name3   3
Run Code Online (Sandbox Code Playgroud)