如何在pythonpandas中将数据框sorting为两列或更多列?

假设我有一个数据框与列ab&c,我想sortingdataframe列b按升序和列c降序,我该怎么做?

2 Solutions collect form web for “如何在pythonpandas中将数据框sorting为两列或更多列?”

从0.17.0版本开始, sort方法已被弃用,以支持sort_valuessort在0.20.0版本中完全删除。 参数(和结果)保持不变:

 df.sort_values(['a', 'b'], ascending=[True, False]) 

您可以使用sort的升序参数:

 df.sort(['a', 'b'], ascending=[True, False]) 

例如:

 In [11]: df1 = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=['a','b']) In [12]: df1.sort(['a', 'b'], ascending=[True, False]) Out[12]: ab 2 1 4 7 1 3 1 1 2 3 1 2 4 3 2 6 4 4 0 4 3 9 4 3 5 4 1 8 4 1 

正如@renadeen评论的那样

sorting不是默认的! 所以你应该把sort方法的结果赋给一个variables,或者在方法调用中joininplace = True。

也就是说,如果你想重用df1作为一个sorting的DataFrame:

 df1 = df1.sort(['a', 'b'], ascending=[True, False]) 

要么

 df1.sort(['a', 'b'], ascending=[True, False], inplace=True) 

从pandas 0.17.0开始, DataFrame.sort()已被弃用,并被设置为在将来版本的pandas中被删除。 现在,按值sorting数据DataFrame.sort_valuesDataFrame.sort_values

因此,现在你的问题的答案是

 df.sort_values(['b', 'c'], ascending=[True, False], inplace=True) 
  • 在Alpine Linux上安装Pillow时没有这样的文件或目录“limits.h”
  • Pythonpandasgroupby对象apply方法复制第一组
  • 获取一个类的属性
  • 烧瓶与请求断开的pipe道
  • 有没有办法将可选parameter passing给函数?
  • 在Python中使用YYYY-MM-DD获取今天的date?
  • Homebrew brew医生警告/Library/Frameworks/Python.framework,甚至连brew的Python安装
  • 如何删除python中的string的所有实例?
  • Python列表中的省略号是什么?
  • 在Python 2.7中舍入到小数点后两位?
  • 如何从子类调用基类的__init__方法?