Pandas按名称对列进行排序[英] Pandas sort columns by name

本文是小编为大家收集整理的关于Pandas按名称对列进行排序的处理方法,想解了Pandas按名称对列进行排序的问题怎么解决?Pandas按名称对列进行排序问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有以下数据框,我想根据名称对列进行排序.

1 | 13_1 | 13_10| 13_2  | 2   | 3
9 |  31  | 2    |  1    | 3   | 4

我正在尝试按以下方式对列进行排序:

1 |  2  | 3    | 13_1  | 13_2  | 13_10
9 |  3  | 4    |  31   |  1    | 2

我一直在尝试使用 df.sort_index(axis=1, inplace=True) 来解决这个问题,但结果与我的初始数据帧相同.即:

1 | 13_1 | 13_10| 13_2  | 2   | 3
9 |  31  | 2    |  1    | 3   | 4

它似乎将 13_1 识别为 1.31 而不是 13.1.此外,我尝试将列名从字符串转换为浮点数.但是,结果证明将 13_1 和 13_10 都视为 13.1 给我重复的列名.

推荐答案

natsort

from natsort import natsorted

df = df.reindex(natsorted(df.columns), axis=1)

#   1  2  3  13_1  13_2  13_10
#0  9  3  4    31     1      2

本文地址:https://www.itbaoku.cn/post/1728090.html