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

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


  相关主题

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

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

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

问句python语法含义   1回答

print的时候报错:TypeError: unsupported operand type(s) for /: 'str' and 'int'   1回答

有一个1000万行的dataframe   3回答

print(__doc__)有什么用?   1回答

怎么把python的dict存为json格式文件   2回答

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

怎么用python生成一个二维码,扫码跳转到一个指定的网页?   1回答

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

对tuple的元素赋值时报错:'tuple' object does not support item assignment   1回答



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

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

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

我们谢绝答非所问。

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

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