【问题标题】:How to sort column index (name of columns) in DF except the first如何在DF中对除第一个之外的列索引(列名)进行排序
【发布时间】:2021-09-24 05:58:08
【问题描述】:

我想重新排列 df。我需要对值进行排序,其中名称与数字相邻,然后是字母。 我需要用户将其放入 excel 中以绘制数据。 所以我需要对除第一列之外的列名进行排序。 我有这个df:

Time A1 A2 A3 B1 B2 C1 C2 D1 
0    2  3  4  5  6  7  8  9 

我希望对表格进行排序,这样 A1、B1、C1、D1 将彼此相邻(列名的不同排序,先按数字,然后按字母)

Time A1 B1 C1 D1 A2 B2 C2 A3
0    2  5  7  9  3  6  8  4

我设法按以下方式对索引进行排序:

a = sorted(list(df_mean.loc[:,df_mean.columns != 'Time']), key=lambda x: int(x[1:]) + ord(x[1]))

但是我怎样才能相应地更改这些值呢?

【问题讨论】:

    标签: python-3.x dataframe sorting


    【解决方案1】:

    试试:

    df = df[["Time", *sorted(df.columns[1:], key=lambda x: (int(x[1:]), x[0]))]]
    print(df)
    

    打印:

       Time  A1  B1  C1  D1  A2  B2  C2  A3
    0     0   2   5   7   9   3   6   8   4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 2012-09-07
      • 2014-11-29
      • 2023-03-05
      • 1970-01-01
      • 2021-08-26
      • 2020-03-08
      相关资源
      最近更新 更多