如何对大熊猫提交的字母数字进行排序?

时间:2017-04-11 13:29:20

标签: python sorting pandas

我有一个数据框,第一列包含id。如何在第一列包含字母数字数据时对其进行排序,例如:

id = ["6LDFTLL9", "N9RFERBG", "6RHSDD46", "6UVSCF4H", "7SKDEZWE", "5566FT6N","6VPZ4T5P", "EHYXE34N", "6P4EF7BB", "TT56GTN2", "6YYPH399" ]

预期结果是

id = ["5566FT6N", "6LDFTLL9", "6P4EF7BB", "6RHSDD46", "6UVSCF4H", "6VPZ4T5P", "6YYPH399", "7SKDEZWE", "EHYXE34N", "N9RFERBG", "TT56GTN2" ] 

1 个答案:

答案 0 :(得分:1)

您可以使用.sort()方法:

>>> id.sort()
['5566FT6N', '6LDFTLL9', '6P4EF7BB', '6RHSDD46', '6UVSCF4H', '6VPZ4T5P', '6YYPH399', '7SKDEZWE', 'EHYXE34N', 'N9RFERBG', 'TT56GTN2']

这将对列表进行排序。如果您不想更改原始id列表,可以使用sorted()方法

>>> sorted(id)
['5566FT6N', '6LDFTLL9', '6P4EF7BB', '6RHSDD46', '6UVSCF4H', '6VPZ4T5P', '6YYPH399', '7SKDEZWE', 'EHYXE34N', 'N9RFERBG', 'TT56GTN2']
>>> id
['6LDFTLL9', 'N9RFERBG', '6RHSDD46', '6UVSCF4H', '7SKDEZWE', '5566FT6N', '6VPZ4T5P', 'EHYXE34N', '6P4EF7BB', 'TT56GTN2', '6YYPH399']

注意,有了这个,id没有改变。

对于DataFrame,您要使用sort_values()

df.sort_values(0, inplace=True)

0可以是列的数字索引,也可以传递列名称(例如id

           0
5   5566FT6N
0   6LDFTLL9
8   6P4EF7BB
2   6RHSDD46
3   6UVSCF4H
6   6VPZ4T5P
10  6YYPH399
4   7SKDEZWE
7   EHYXE34N
1   N9RFERBG
9   TT56GTN2