python - 按名称排列熊猫数据框列(字母数字)
问题描述
我有一个数据框,其中的列按字母数字命名为 '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'-首先在#之前的字母部分,然后# 之后的数字部分。
有没有办法直接做到这一点?
解决方案
使用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
推荐阅读
- java - XMLEncoder 拒绝写入文件
- facebook - Facebook API:- 根据共享帖子获取 Facebook 页面提要数据
- android - Android 项目没有解析任何静态资产
- reporting-services - SSRS 按日期范围筛选表达式
- machine-learning - 我们如何将时间序列数据转换为监督学习问题?
- php - PHP CLI:pdo_pgsql 不存在
- python - Python 3.7- 在命令提示符下执行 pip install Jupyter 时出现 SSL 证书错误
- kotlin - AssertJ:`ignoringFields` 没有忽略所有提供的字段?
- angular - 模拟服务中的依赖项
- azure - Azure Network Watcher 能否用于诊断应用服务?