2016-10-02 3 views
0

Я хочу отсортировать этот файл Excel, используя второй столбец, который является объектом Target. В столбце Target имеет данные в виде строки и целогоСортировка файла Excel по имени столбца, содержащего строку и целое число

enter image description here

Когда я делаю вид на файл Excel с помощью функции pandas.dataFrame.sort_values(), я получаю что-то вроде этого:

enter image description here

Этот отсортированный порядок неверен, потому что Slide2.JPG, Slide3.JPG должен быть выше Slide10.JPG и т. Д.

Как это исправить?

ответ

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']