使用pandas按绝对值对列排序

使用pandas按绝对值对列排序,pandas,Pandas,我试图在abs(C)上对这个数据帧进行排序 为此,我必须附加一个新列D=abs(C),然后按D排序 df['D']= abs (df['C']) df.sort_values(by=['D']) 有没有一种方法可以完成这项工作?用于绝对值的位置,然后通过以下方式更改行的顺序: (发件人:) Pandas>V_1.1.0提供了完美的简单解决方案: 使用中的参数键: import pandas as pd ttt = pd.DataFrame({'a': ['a', 'b', 'c', 'd',

我试图在abs(C)上对这个数据帧进行排序

为此,我必须附加一个新列D=abs(C),然后按D排序

df['D']= abs (df['C'])
df.sort_values(by=['D'])
有没有一种方法可以完成这项工作?

用于绝对值的位置,然后通过以下方式更改行的顺序:

(发件人:)

Pandas>V_1.1.0提供了完美的简单解决方案: 使用中的参数

import pandas as pd
ttt = pd.DataFrame({'a': ['a', 'b', 'c', 'd', 'e', 'f'], 'b': [-3, -2, -1, 0, 1, 2]})

ttt.sort_values(by='b', key=abs)
将产生:

    a   b
3   d   0
2   c   -1
4   e   1
1   b   -2
5   f   2
0   a   -3

这回答了你的问题吗?如果我想让它按降序排序怎么办?@Matthi9000-我想使用一些解决方案,例如
df.iloc[(-df.C.abs()).argsort()]
Hmm好的,当我之前尝试时,它没有正确地对df进行排序。我再查一遍。->是的,它起作用了。不知道我之前做错了什么。
import pandas as pd
ttt = pd.DataFrame({'a': ['a', 'b', 'c', 'd', 'e', 'f'], 'b': [-3, -2, -1, 0, 1, 2]})

ttt.sort_values(by='b', key=abs)
    a   b
3   d   0
2   c   -1
4   e   1
1   b   -2
5   f   2
0   a   -3