在 Pandas 中,如何按组中下一次出现的迭代项的顺序创建列
我有这个数据:
import io
df = pd.read_csv(io.StringIO("""Name,Team\nWill,DEN\nMark,SEA\nBob,MIA\nWill,DEN\nWill,DEN\nMark,SEA\nWill,DEN\nWill,DEN\nBob,MIA\nMark,SEA\n"""))
df
Name Team
0 Will DEN
1 Mark SEA
2 Bob MIA
3 Will DEN
4 Will DEN
5 Mark SEA
6 Will DEN
7 Will DEN
8 Bob MIA
9 Mark SEA
我正在尝试获取每个名称或团队出现的顺序,如下所示:
Name Team Sequence
0 Will DEN 1
1 Mark SEA 1
2 Bob MIA 1
3 Will DEN 2
4 Will DEN 3
5 Mark SEA 2
6 Will DEN 4
7 Will DEN 5
8 Bob MIA 2
9 Mark SEA 3
我尝试了 cummin,但这只是为每个名称提供了每个名称的唯一索引(这对其他事情很有用,但不是这个任务):
df.reset_index().groupby('Name')['index'].cummin()
0 0
1 1
2 2
3 0
4 0
5 1
6 0
7 0
8 2
9 1
所以我被卡住了,我在问是否有人有办法完成这项任务。
我们有 cumcount
df.groupby(list(df),sort=False).cumcount()+1
0 1
1 1
2 1
3 2
4 3
5 2
6 4
7 5
8 2
9 3
dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句