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

  统计/机器学习 Python    浏览次数:9888        分享
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


  相关主题

DataFrame批量修改列名   1回答

python 时间格式问题   1回答

python如何判断某路径下是否存在指定的csv文件?   2回答

求多个torch tensor的平均值   1回答

pymongo多线程报错Address already in use   1回答

python怎么去除字符串中的连字符?   1回答

获取DataFrame所占空间的大小   2回答

dataframe数据变long python有stata类似的命令吗   1回答

如何对将Python dictionary里的key按照value进行排序?   1回答

python怎么只保留某列前几个数字   2回答

有一个1000万行的dataframe   3回答

map lambda if逗号报错,invalid syntax   1回答



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

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

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

我们谢绝答非所问。

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

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