首页 > 解决方案 > pandas-groupby 中一行的出现顺序

问题描述

我正在尝试使用组内行的“索引”或“出现顺序”向我的数据框添加一个新列。

例如,我有这样的东西

  col1  
0 John 
1 Lucy 
2 Jane 
3 Jane 
4 Jane 
5 Lucy 

我想要groupby('col1')并获得每个组内的出现顺序。

我正试图得到这样的东西

  col1  col2                
0 John 1
1 Lucy 1
2 Jane 1
3 Jane 2
4 Jane 3
5 Lucy 2

我希望我很清楚。先验对我来说似乎并不太棘手,但我就是做不到!

谢谢!

标签: pythonpandaspandas-groupby

解决方案


df['count'] = df.groupby(by=['col1']).cumcount()+1
print(df)

    col1  count
0  John       1
1  Lucy       1
2  Jane       1
3  Jane       2
4  Jane       3
5  Lucy       2

推荐阅读