python - 熊猫数据框中的自定义数据排序(字母+整数)
问题描述
我有一个数据框,我需要对一列的内容进行排序(逗号分隔)(按字母顺序+数字):
输入 : -
Invoice Number
0 IN-2
1 IN-1
2 IN-5
3 IN-20
4 IN-10
我想要像这样的输出
Invoice Number
0 IN-1
1 IN-2
2 IN-5
3 IN-10
4 IN-20
我试过了
df.sort_values(by=['发票编号'])
但它排序:
Invoice Number
0 IN-1
1 IN-10
2 IN-2
3 IN-20
4 IN-5
如果有人知道如何对我的数据(字母+整数)值进行排序,请告诉我。
解决方案
尝试使用占位符列:
df['_'] = df['Invoice Number'].str.split('-').str[1].astype(int)
print(df.sort_values('_').drop('_', axis=1).reset_index(drop=True))
或与key
论点:
print(df.sort_values('Invoice Number', key=lambda x: x.str.split('-').str[1].astype(int))
两个代码输出:
Invoice Number
0 IN-1
1 IN-2
2 IN-5
3 IN-10
4 IN-20
推荐阅读
- flutter - 有什么办法可以防止颤振向谷歌发送崩溃报告
- vue.js - 如何在 Vue.js 中保存 url 并使用 chrome api 进行 chrome 扩展?
- c++ - 如何使 callgrind 的结果具有人类可读性
- sql - 返回不同行的条件 SQL Where 子句
- single-sign-on - 在 ASP.NET 中为 SSO 构建安全令牌服务 (STS) 应用程序
- java - 使用 Java.io.file,当我尝试从中读取证书时,它总是指向错误的路径
- java - Hibernate Search:如何动态配置 JPA 实体的索引?
- webrtc - 检查webrtc连接是否建立成功
- reactjs - 当我在 gatsby-confis.js 文件中添加 gatsby-plugin-sass
- c# - Sql Tree错误中重新实现OrderBy、ThenBy和Null TypeMapping