繁体   English   中英

Python/Pandas:根据列名对 dataframe 列进行排序

[英]Python/Pandas: Sort dataframe columns based on a column name

我有一个 dataframe 包含标记为 x1、x2、x3 和 x4 的几列。

根据分析,当从左到右对 dataframe 中的四列进行排序时,我需要将四列中的一列指定为第一列。

例如,如果我希望列 'x2' 是第一个,我将其分配给 'sorter'。

sorter = x2 

现在我的问题是:如何对列中的数据框进行排序,以便分配给“排序器”的列位于第一列?

编辑:列的 rest 的顺序应保持不变。

您可以更改列的顺序,例如:

data = {'X1':  ['11', '12'],
        'X2': ['21', '22'],
        'X3': ['31', '32']
        }

df = pd.DataFrame(data)
df
    X1  X2  X3
0   11  21  31
1   12  22  32

df = df.reindex(['X3','X1','X2'], axis=1)
df

    X3  X1  X2
0   31  11  21
1   32  12  22

注意:您需要提供所需的订单。

您可以创建 function 以按给定列更改顺序:

def sorter(desired, df):
    columns = df.columns.tolist()
    columns.remove(desired)
    columns.insert(0,desired)
    return df.reindex(columns, axis=1)

sorter('X2',df)

    X2  X1  X3
0   21  11  31
1   22  12  32

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM