如何在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) 
  • 如何在Windows上的Anaconda Python中安装Keras和Theano?
  • 如何在Mac OS X 10.6.4上卸载Python 2.7?
  • 如何运行2个函数在单个RDD上使用pyspark并行执行完全独立的转换?
  • 如何使Tornado中的SQLAlchemy成为asynchronous?
  • 如果或者如果真的那么做一些事情
  • 通过键列表访问嵌套字典项目?
  • (13:权限被拒绝)连接上游:
  • 如何使用PyCharm来debuggingScrapy项目
  • 有没有办法将可选parameter passing给函数?
  • 烧瓶与请求断开的pipe道
  • 如何写入现有的Excel文件,而不覆盖数据(使用pandas)?