gpt4 book ai didi

python - 按两列对 Pandas Dataframe 进行排序,其中一列值按顺序重复

转载 作者:行者123 更新时间:2023-11-30 22:53:26 28 4
gpt4 key购买 nike

我的输入数据框有两列:

df

c1 c2
0 a 8
1 a 3
2 b 2
3 c 1
4 b 10
5 c 8
6 a 10
7 c 7

我想对上面的数据框进行排序,以便列“c1”中的值按顺序出现(abcabcac),并且它们相应的列“c2”值按升序(或降序)排列,如下所示:

df_out:
c1 c2
0 a 3
1 b 2
2 c 1
3 a 8
4 b 10
5 c 7
6 a 10
7 c 8

请建议如何实现此类排序/排序。

最佳答案

df.assign(c3 = df.groupby('c1')['c2'].rank()).sort_values(['c3', 'c1']).drop('c3', axis=1)
Out[21]:
c1 c2
1 a 3
2 b 2
3 c 1
0 a 8
4 b 10
7 c 7
6 a 10
5 c 8

这会创建一个新列c3,其中包含要用于排序的每个字母的排名(相对于 c2)。然后,按该列和 c1 排序。最后,该辅助列被删除。

关于python - 按两列对 Pandas Dataframe 进行排序,其中一列值按顺序重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172474/

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