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

  统计/机器学习 Python    浏览次数:13048        分享
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已知某个元素,怎么得到该元素在dataframe中的位置

怎么利用python批量替换多个txt文件中的文字片段?

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

python里清除已经定义过的变量

python倒序的range

问句python语法含义

东方财富的数据怎么爬下来

python中休眠

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

map lambda if逗号报错,invalid syntax

  随便看看

Random Forest可以用来做聚类?

二元分类问题中经常提到的TP,TN,FN,FP都是什么意思?

pandas报错ValueError: Cannot convert non-finite values (NA or inf) to integer

T检验的effect size是什么?有什么含义吗?

两个独立的正态随机变量的乘积服从什么分布?