按列索引进行 sort_values 排序

4

我看过很多有关基于pandas列名进行排序的建议,但我正在尝试根据列索引进行排序。

我包含了一些代码以演示我正在尝试做什么。

import pandas as pd

df = pd.DataFrame({
 'col1' : ['A', 'A', 'B', 'D', 'C', 'D'],
 'col2' : [2, 1, 9, 8, 7, 4],
 'col3': [0, 1, 9, 4, 2, 3],
 })

df2 = df.sort_values(by=['col2'])

我想对多个数据帧进行排序,这些数据帧的第二列名称都不同。基于 (by=['col2']) 进行排序并不实用,但我总是想按照第二列排序(即列索引 1)。这是否可能?

1个回答

9

通过位置选择列名并将其传递给by参数:

print (df.columns[1])
col2

df2 = df.sort_values(by=df.columns[1])
print (df2)
  col1  col2  col3
1    A     1     1
0    A     2     0
5    D     4     3
4    C     7     2
3    D     8     4
2    B     9     9

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