【问题标题】:How to sort Pandas df columns' values based on its position not labels?如何根据位置而不是标签对 Pandas df 列的值进行排序?
【发布时间】:2017-11-05 15:16:04
【问题描述】:

肯定有一个明显的答案,但我在 sort_values() 的 docs 和相关问题帖子中都找不到它*

df.sort_values() 中的by 接受列标签,但如何使用列的位置进行排序

我想出了这个繁琐的代码

df.iloc[df.iloc[:,1].sort_values().index]

按第二列排序。

我在想像df.sort_values(by=1,axis=1) 这样的东西会存在。那么什么是语法上简单而正确的方法呢?


*相关问题:1234556

【问题讨论】:

  • 您能提供示例数据吗?
  • 我不确定。 df.iloc[:, np.argsort(df.columns.values)] 将重新排序 df 中的列,对吗?我需要对 df 进行排序,例如,第 33 列的值。

标签: python python-3.x pandas dataframe


【解决方案1】:

最简单的是按位置选择列名:

df = df.sort_values(df.columns[1])

【讨论】:

  • 是的!我懂了。没有更短的手呢?为什么不允许位置 int 作为 by 值?
  • 在我看来它还没有实现。
猜你喜欢
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 1970-01-01
  • 2021-09-12
  • 2022-08-19
  • 2020-04-23
相关资源
最近更新 更多