怎么让DataFrame按照某一列绝对值从小到按排列?

  统计/机器学习 Python    浏览次数:3683        分享
0

怎么让pandas DataFrame按照某一列的绝对值从小到按排列?

 

何立诚   2018-10-19 12:59



   2个回答 
4

没有直接的函数可以用,只能先建一个辅助列,然后根据辅助列排序,然后再把辅助列删掉

代码如下

In [162]:
df['sort_helper'] = df['b'].abs()
df.sort_values('sort_helper').drop('sort_helper', axis=1)

Out[162]:
   a  b
2  3 -1
3  4  2
0  1 -3
1  2  5
4  5 -9


SofaSofa数据科学社区DS面试题库 DS面经

淡淡的   2018-10-19 14:15

4

比如按照‘a'列的绝对值从小到大排序

df.iloc[df['a'].abs().argsort()]

按照绝对从大到小排序

df.iloc[df['a'].abs().argsort()[::-1]]
SofaSofa数据科学社区DS面试题库 DS面经

简Cheng   2019-07-16 13:30

这个更简洁 - LiShanfei   2019-07-29 00:20


  相关主题

怎么在python获取系统的当前日期和时间?   1回答

python怎么读取txt格式的数据文件?   1回答

引用报错ImportError: No module named stats   1回答

from __future__ import division是什么意思   3回答

python的dataframe如何重新排列行或者列   1回答

python里的<<或者>>符号是什么意思?   2回答

python 时间格式问题   1回答

python __del__ 求解释   3回答

python里的continue是什么意思   2回答

Jupiter notebook中显示一个dataframe所有的列   2回答

python里@property有什么用   2回答

print里的"%.2f"是什么意思?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!