我如何计算两个组的数据,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

08-16 17:28