gpt4 book ai didi

python - Pandas 基于列值排序

转载 作者:行者123 更新时间:2023-12-01 00:11:51 24 4
gpt4 key购买 nike

我有一个 pandas 数据框,例如:

我的数据框如下所示,

Input DataFrame
id ratio
0 1 5.00%
1 2 9.00%
2 3 6.00%
3 2 13.00%
4 1 19.00%
5 4 30.00%
6 3 5.5%
7 2 22.00%

我怎样才能将其分组

         id          ratio
0 1 5.00%
4 1 19.00%
6 3 5.5%
2 3 6.00%
1 2 9.00%
3 2 13.00%
7 2 22.00%
5 4 30.00%


因此,本质上首先查看比率,取该值的最低值,并对具有相同 id 的其余行进行分组。然后查找第二低的比率并再次对其余 id 进行分组,依此类推。

最佳答案

首先将您的ratio列转换为数字。

然后,我们使用 Groupby 获得每组最低的排名

最后,我们根据排名数值比例进行排序。

df['ratio_num'] = df['ratio'].str[:-1].astype(float).rank()
df['rank'] = df.groupby('id')['ratio_num'].transform('min')

df = df.sort_values(['rank', 'ratio_num']).drop(columns=['rank', 'ratio_num'])

id ratio
0 1 5.00%
1 1 19.00%
2 3 5.5%
3 3 6.00%
4 2 9.00%
5 2 13.00%
6 2 22.00%
7 4 30.00%

关于python - Pandas 基于列值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586752/

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