Khi tôi tạo bảng đa chỉ mục trong một lần chụp, sortlevel() hoạt động như mong đợi. Tuy nhiên, nếu tôi nối nhiều bảng để tạo cùng một bảng đa chỉ mục, tôi không thể sắp xếp lại() nữa. Full ví dụ dưới đây:Pandas sắp xếp MultiIndex sau khi ghép nối
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)
Tôi hy vọng cả hai để sản xuất:
country name
first 0 Albania Jeff
second 1 Zimbabwe Fred
Tuy nhiên, tôi chỉ nhận được rằng cho "làm việc". Có ai biết tôi đang làm gì sai không? Sử dụng gấu trúc 0.19.2
Chỉnh sửa: Tôi nghĩ tôi thấy gợi ý. Nhìn vào chỉ số làm việc và not_working, tôi thấy điều này: working.index = MultiIndex (cấp = [[u'first ', u giây'], [0, 1]], nhãn = [[1, 0], [1, 0]]). Nhưng not_working.index = MultiIndex (cấp = [[u giây ', u'first'], [0, 1]], nhãn = [[0, 1], [1, 0]]) – user3076411
Hình như sắp xếp chỉ mục hoạt động không theo thứ tự bảng chữ cái của nhãn của chỉ mục mà chỉ theo thứ tự mà chúng xuất hiện trong chỉ mục. Có anyway tôi có thể thay đổi điều này? – user3076411