gpt4 book ai didi

python - 对于a列中的相同值,对b列中的值进行排序并选择前5个

转载 作者:行者123 更新时间:2023-11-28 20:55:00 25 4
gpt4 key购买 nike

我有一个包含两列 col_1col_2 的数据框。 col_2 列中的值对应于 col_1 列中的值。

print (df)
col_1 col_2
1 a 12
2 a 33
3 a 11
4 a 4
5 a 42
6 a 66
7 a 9
8 b 12
9 b 34
10 b 42
11 b 64
12 b 86
13 b 2

我想做的是,对于 col_1 (a, b, c,..) 中的每个值,我想对 中的相应值进行排序code>col_2 并仅选择前 5 个值。新的数据框应该是这样的:

enter image description here

我尝试了删除重复应用 here因为 col_2 有时会重复。但是,它没有用。

df.sort_values('col_2', ascending=False).drop_duplicates('col_a').sort_index()

任何建议将不胜感激

最佳答案

改用 drop_duplicates 函数 GroupBy.head并将第一列添加到 DataFrame.sort_values升序排序:

n = 5
df1 = df.sort_values(['col_1','col_2'], ascending=[True, False]).groupby('col_1').head(n)
print (df1)
col_1 col_2
6 a 66
5 a 42
2 a 33
1 a 12
3 a 11
12 b 86
11 b 64
10 b 42
9 b 34
8 b 12

关于python - 对于a列中的相同值,对b列中的值进行排序并选择前5个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57867789/

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