如何基于列位置而非标签对 Pandas df 列值进行排序?

5

我知道应该有一个明显的答案,但是我既没有在sort_values()的文档中找到,也没有在相关问题帖子中找到。

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

我想出了这个繁琐的代码

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

要按第二列排序。

我在想类似于 df.sort_values(by=1,axis=1) 这样的东西应该存在。那么什么是语法上简单和正确的方法呢?


*相关问题:1, 2, 3, 4, 5, 5, 6


能否提供示例数据? - Bharath M Shetty
我不确定是否理解。df.iloc[:, np.argsort(df.columns.values)]会重新排列df中的列,对吗?我需要的是按照第33列的值对df进行排序。 - Malik Koné
1个回答

4

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

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

1
是的!我明白了。没有更短的写法吗?为什么不允许将位置整数作为“by”值? - Malik Koné
在我看来,它还没有被实现。 - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接