让DataFrame中的行按照某一列元素的绝对值从大到小排列

  统计/机器学习 数据预处理 Python    浏览次数:14252        分享
1

对于pandas.DataFrame,我想让这个df中的行按照某一列,比如说col_a中元素的绝对值的大小,从大到小排列,该怎么操作?

 

道画师   2017-03-27 12:36



   1个回答 
5

假如你的pd.DataFrame是df,你想按照col_1中的数值对df重新排列

降序排列(从大到小)

df.reindex(df['col_1'].abs().sort_values(ascending=False).index)

升序排列(从小到大)

df.reindex(df['col_1'].abs().sort_values(ascending=True).index)


>>> df
   col_1  col_2
0      2      1
1      4      3
2     -3      5
3     -5      7

>>> df.reindex(df['col_1'].abs().sort_values(ascending=False).index)
   col_1  col_2
3     -5      7
1      4      3
2     -3      5
0      2      1



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

派大星   2017-03-28 10:13



  相关讨论

怎麼將dataframe 欄位 對應到原有的csv檔 而寫入

怎么把dataframe的一列转成整数类型

怎么求一个数组的移动平均数

把分组频数统计的结果添加到原来dataframe中

str.replace为什么会将数字替换成NaN

python中怎么把千位分隔符以及货币符号去掉转成数值形式?

一个数据预处理的问题

dummy variable是n个还是n-1个

机器学习中的过采样和欠采样是什么意思?

怎么对特征做标准化使得数值都是正数?

  随便看看

逻辑回归的损失函数是怎么来的

pandas同时返回一个dataframe的前几行(head)和后几行(tail)

随机梯度下降(sgd)的收敛问题

Random Forest可以用来做聚类?

如何在numpy array尾部增加一行