gpt4 book ai didi

python - 基于两列+排序列值+条件添加索引

转载 作者:行者123 更新时间:2023-11-28 22:09:01 25 4
gpt4 key购买 nike

我正在尝试添加基于两列(在我的例子中为个体和集群)+第三列的排序值(totalPrice)的索引

所以我有一个包含三列的数据集 - individual、cluster 和totalPrice。

     individual  cluster  totalPrice  totalTripDurationMinutes
0 9710556 1 180.82 140
1 9710556 0 202.32 145
2 9710556 0 180.82 140
3 9710535 7 729.44 460
4 9710535 7 729.44 640
5 9710535 7 702.60 355
6 9710535 7 685.82 300
7 9710535 7 685.82 480
8 9710535 7 669.44 520
9 9710535 7 669.44 580
10 9710535 7 669.44 700

我想要做的是对于每个个体和每个集群,我想找到由当前totalPrice主导的totalPrice条目的数量。结果应如下所示:

     individual  dominationCount  cluster  totalPrice  totalTripDurationMinutes
0 9710556 0 1 180.82 140
1 9710556 0 0 202.32 145
2 9710556 1 0 180.82 140
3 9710535 0 7 729.44 460
4 9710535 0 7 729.44 640
5 9710535 1 7 702.60 355
6 9710535 2 7 685.82 300
7 9710535 2 7 685.82 480
8 9710535 3 7 669.44 520
9 9710535 3 7 669.44 580
10 9710535 3 7 669.44 700

有什么想法可以用 pandas 制作它吗?

最佳答案

使用GroupBy.rank使用 methos='dense' 并减去 1:

df['dominatedCount'] = (df.groupby(['individual', 'cluster'])['totalPrice']
.rank(ascending=False, method='dense')
.astype(int)
.sub(1))
print (df)
individual cluster totalPrice totalTripDurationMinutes dominatedCount
0 9710556 1 180.82 140 0
1 9710556 0 202.32 145 0
2 9710556 0 180.82 140 1
3 9710535 7 729.44 460 0
4 9710535 7 729.44 640 0
5 9710535 7 702.60 355 1
6 9710535 7 685.82 300 2
7 9710535 7 685.82 480 2
8 9710535 7 669.44 520 3
9 9710535 7 669.44 580 3
10 9710535 7 669.44 700 3

关于python - 基于两列+排序列值+条件添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57955583/

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