首页 > 解决方案 > 根据列标题名称对 pandas 数据框中的列重新排序,其中列的名称是字符串,最后包含数字

问题描述

在此处输入图像描述 排序前:

如果我们查看文件,列是未排序的。示例列标题分别为 L0_S0_F0、L0_S0_F4、L0_S0_F2、L0_S0_F10、L0_S0_F6、L0_S0_F8 和 L0_S0_F12

合并后的文件

在此处输入图像描述:正确排序后,我们需要具有顺序排列的列的数据框,其顺序分别为 L0_S0_F0、L0_S0_F2、L0_S0_F4、L0_S0_F6、L0_S0_F8、L0_S0_F10 和 L0_S0_F12

这里是列名,例如 L0_S0_F0,代表 Line 0、station 0 和 feature 2。现在我们需要根据要素的名称('F' 后面的数字)对列进行排序。

重新排序后的文件

在此处输入图像描述

标签: python-3.xpandasdataframesorting

解决方案


这将是 :

df = df.reindex(sorted(df.columns[1:], key=lambda x: int(x.split('_')[-1][1:])), axis=1)

推荐阅读