首页 > 解决方案 > 按名称排列熊猫数据框列(字母数字)

问题描述

我有一个数据框,其中的列按字母数字命名为 'A#1 , A#0.25, A#10, A#2, B#1, B#0.25, B#10, B#2'

我想按字母数字顺序排列它们,如'A#0.25、A#1、A#10、A#2、B#0.25、B#1、B#2、B#10'-首先在#之前的字母部分,然后# 之后的数字部分。

有没有办法直接做到这一点?

标签: pythonpandasdataframe

解决方案


使用natsort

import natsort
df=df.reindex(columns=natsort.natsorted(df.columns))
df
Out[115]: 
   A#0.25  A#1  A#2  A#10  B#0.25  B#1  B#2  B#10
0       0    0    0     0       0    0    0     0

数据输入

df
Out[112]: 
   A#1  A#0.25  A#10  A#2  B#1  B#0.25  B#10  B#2
0    0       0     0    0    0       0     0    0

推荐阅读