gpt4 book ai didi

python - Pandas - 通过将组中的重复项目视为新项目来对组内的项目进行排名

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:08 25 4
gpt4 key购买 nike

Dataframe 有两列(ColA 和 ColB)

 ColA   ColB
123 A
123 B
123 C
123 C
123 D
123 C
123 C

456 A
456 B
456 D
456 D
456 E

我想创建一个新列,通过将组内的重复项目视为新项目来在组内排名(例如:在组 123 中对项目 C 进行两次排名)。寻找应该像这样的解决方案:

ColA    ColB    ColC
123 A 1
123 B 2
123 C 3
123 C 3
123 D 4
123 C 5
123 C 5

456 A 1
456 B 2
456 D 3
456 D 3
456 E 4

谢谢

最佳答案

你可以这样做:

df['ColC'] = df.groupby('ColA')['ColB'].transform(lambda x:(x!=x.shift()).cumsum())

>>> df
ColA ColB ColC
0 123 A 1
1 123 B 2
2 123 C 3
3 123 C 3
4 123 D 4
5 123 C 5
6 123 C 5
7 456 A 1
8 456 B 2
9 456 D 3
10 456 D 3
11 456 E 4

关于python - Pandas - 通过将组中的重复项目视为新项目来对组内的项目进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com