我如何计算两个组的数据,id和name?例如,我有:
id name
1 name1
1 name1
1 name2
2 name3
2 name3
2 name3
我希望它看起来像:
id name cumcount
1 name1 1
1 name1 2
1 name2 1
2 name3 1
2 name3 2
2 name3 3
基本上是一个id中每个名字的运行记录。
最佳答案
您可以使用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