如何使用 key 参数按列对 Pandas 数据框进行排序

问题描述 投票:0回答:1

假设有一个 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)

我必须使用什么关键规格?

python pandas sorting key
1个回答
0
投票

不排序,仅索引:

out = df[col_target_order]
© www.soinside.com 2019 - 2024. All rights reserved.