gpt4 book ai didi

pandas - 使用 Pandas 按绝对值对列进行排序

转载 作者:行者123 更新时间:2023-12-04 16:27:20 28 4
gpt4 key购买 nike

我正在尝试在 abs(C) 上对这个数据框进行排序

      A     B     C
0 10.3 11.3 -0.72
1 16.2 10.9 -0.84
2 18.1 15.2 0.64
3 12.2 11.3 0.31
4 17.2 12.2 -0.75
5 11.6 15.4 -0.08
6 16.0 10.4 0.05
7 18.8 14.7 -0.61
8 12.6 16.3 0.85
9 11.6 10.8 0.93

为此,我必须追加一个新列 D = abs(C),然后对 D 进行排序

df['D']= abs (df['C'])
df.sort_values(by=['D'])

有没有一种方法可以完成这项工作?

最佳答案

使用 Series.argsort通过 Series.abs 获取绝对值的位置然后按 DataFrame.iloc 更改行的顺序:

df2 = df.iloc[df.C.abs().argsort()]
print (df2)
A B C
6 16.0 10.4 0.05
5 11.6 15.4 -0.08
3 12.2 11.3 0.31
7 18.8 14.7 -0.61
2 18.1 15.2 0.64
0 10.3 11.3 -0.72
4 17.2 12.2 -0.75
1 16.2 10.9 -0.84
8 12.6 16.3 0.85
9 11.6 10.8 0.93

关于pandas - 使用 Pandas 按绝对值对列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60862536/

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