微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-对混合类型和不同长度的字符串进行排序

我有一个这样的数据框:

import pandas as pd

df = pd.DataFrame({'A': ['286a2', '17', '286a1', '373', '200b', '150'], 'B': range(6)})

       A  B
0  286a2  0
1     17  1
2  286a1  2
3    373  3
4   200b  4
5    150  5

我想根据A进行排序.当我使用

df.sort_values(by='A')

我得到

       A  B
5    150  5
1     17  1
4   200b  4
2  286a1  2
0  286a2  0
3    373  3

这几乎是正确的:我想在150之前设置17,但不知道如何执行此操作,因为这些条目不仅是值,而且是由数字和字母组成的实际字符串.有没有办法做到这一点?

编辑

关于条目的模式:

它始终始终是一个任意长度的数字值,然后可以跟在字符之后,再可以跟在后面.

解决方法:

您可以使用replace个字符.与演员一起以sort_index浮动:

df.index = df['A'].str.replace('[a-zA-Z]+','.').astype(float)
df = df.sort_index().reset_index(drop=True)
print (df)
       A  B
0     17  1
1    150  5
2   200b  4
3  286a1  2
4  286a2  0
5    373  3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐