按绝对值对数据框进行排序而不更改值或添加列

时间:2021-02-06 20:21:34

标签: python dataframe sorting

我有一个数据框,它是导入 csv 然后执行一些操作并添加一列的结果,该列是其他两列之间的差异(假设是第 10 列 - 第 9 列)。我正在尝试按该差异列的绝对值对数据框进行排序,而不更改其值或添加另一列。

我在互联网上一遍又一遍地看到这种语法,有迹象表明它是成功的(接受的答案,评论说“谢谢,有效”等)。但是,我收到了您在下面看到的错误:

df.sort_values(by='Difference', ascending=False, inplace=True, key=abs)

错误:

TypeError: sort_values() got an unexpected keyword argument 'key'

我不确定为什么我认为对其他人有用的语法对我不起作用。我有很多关于代码和其他数据框的事情,所以我认为这不是 Pandas 导入问题。

我已经继续前进,只是创建了一个新列,该列是差异列的绝对值并以此排序,并从我的导出到工作表中排除该列,但我真的很想知道如何让它工作另一种方法。任何帮助表示赞赏。

我使用的是 Python 3

2 个答案:

答案 0 :(得分:0)

  • key 是可选参数
  • 它接受系列作为输入,也许您正在使用数据框。

check this

答案 1 :(得分:0)

enter image description here

df.loc[(df.c - df.b).sort_values(ascending = False).index] 按 "c" 和 "b" 之间的差异排序,而不创建新列。 我希望这就是你要找的。