2016-10-02 8 views
0

対象となる2番目の列を使用してこのExcelファイルを並べ替える必要があります。文字列と整数を含む列名でExcelファイルを並べ替えます。

enter image description here

:ターゲット列には、私はpandas.dataFrame.sort_values()機能を使用してExcelファイルの並べ替えを行うと、私はこのような何かを取得した文字列と整数

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

として、添付資料で説明しました

関連する問題