按列名称对Excel文件进​​行排序,包含字符串和整数

时间:2016-10-02 09:25:29

标签: python pandas

我想使用第二列Target对此Excel文件进​​行排序。 Target列具有字符串和整数

形式的数据

enter image description here

当我使用fetch函数对Excel文件进​​行排序时,我得到这样的结果:

enter image description here

这个排序顺序错误,因为Slide2.JPG,Slide3.JPG应该高于Slide10.JPG等。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

看来你正在寻找human sorting。您可以使用Python中的正则表达式来处理此类问题。

如附件中所述:

import re
def sort_nicely( l ):
    """ Sort the given list in the way that humans expect.
    """
    convert = lambda text: int(text) if text.isdigit() else text
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
    l.sort( key=alphanum_key )

data=["Slide2.JPG","Slide21.JPG","Slide10.JPG","Slide3.JPG"]
sort_nicely(data)
print data

返回:

['Slide2.JPG', 'Slide3.JPG', 'Slide10.JPG', 'Slide21.JPG']