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 举报,一经查实,本站将立刻删除。