0
我想使用Target的第二列對此Excel文件進行排序。目標列在字符串和整數形式的數據按包含字符串和整數的列名對Excel文件進行排序
當我做一個排序上使用pandas.dataFrame.sort_values()
功能的Excel文件,我得到的是這樣的:
此排序的順序是錯誤的,因爲Slide2.JPG,Slide3.JPG應該在Slide10.JPG之上等。
如何解決此問題?
我想使用Target的第二列對此Excel文件進行排序。目標列在字符串和整數形式的數據按包含字符串和整數的列名對Excel文件進行排序
當我做一個排序上使用pandas.dataFrame.sort_values()
功能的Excel文件,我得到的是這樣的:
此排序的順序是錯誤的,因爲Slide2.JPG,Slide3.JPG應該在Slide10.JPG之上等。
如何解決此問題?
看來您在尋找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']
作爲附文章中解釋