假设有一个 Pandas 数据框(为了简单起见,假设有三列)。这些列的标题为
A
、B
和 d
。
$ import pandas as pd
$ df = pd.DataFrame([[1, 2, "a"], [1, "b", 3], ["c", 4, 6]], columns=['A', 'B', 'd'])
$ df
A B d
0 1 2 a
1 1 b 3
2 c 4 6
进一步假设我希望对数据框进行排序,以便各列具有以下顺序:
d
、A
、B
。数据框的行不得以任何方式重新排列。所需的输出是:
$ col_target_order = ['d', 'A', 'B']
$ df_desired
d A B
0 a 1 2
1 3 1 b
2 6 c 4
我知道这可以通过 pandas 的
sort_index
功能来完成。但是,以下内容将不起作用,因为输入列表 (col_target_order
) 不可调用:
$ df.sort_index(axis=1, key=col_target_order)
我必须使用什么关键规格?
不排序,仅索引:
out = df[col_target_order]