當我一次創建多索引表時,sortlevel()按預期工作。但是,如果我連接多個表來創建相同的多索引表,我不能sortlevel()了。下面完整的例子:大連熊貓在連接後對MultiIndex進行排序
import pandas as pd
a=pd.DataFrame({'country':'Zimbabwe','name':'Fred'}, index=[1])
b=pd.DataFrame({'country':'Albania','name':'Jeff'}, index=[0])
not_working = pd.concat([a,b],keys=['second','first'])
working = pd.DataFrame({'country':['Zimbabwe','Albania'],'name':['Fred','Jeff']}, index=pd.MultiIndex.from_tuples([('second',1),('first',0)]))
not_working_sorted = not_working.sortlevel(0)
working_sorted = working.sortlevel(0)
我希望這兩個生產:
country name
first 0 Albania Jeff
second 1 Zimbabwe Fred
不過,我只拿到了 「工作」。任何人都知道我做錯了什麼?使用熊貓0.19.2
編輯:我想我看到一個提示。查看working和not_working的索引,我看到:working.index = MultiIndex(levels = [[u'first',u'second'],[0,1]],labels = [[1,0], [1,0]])。但not_working.index = MultiIndex(levels = [[u'second',u'first'],[0,1]],labels = [[0,1],[1,0]]) – user3076411
看起來像排序索引不適用於索引標籤的字母順序,而僅適用於它們在索引中出現的順序。無論如何,我可以改變這一點? – user3076411