我創建了一個三級多指標(組,產品和狀態)的數據透視表。狀態級別按字母順序自動排序,但我需要將排序更改爲自定義的非字母排序。我可能還需要以類似的方式重新訂購組和產品級別。熊貓樞軸表 - 多指數reoganize訂單
pivot = data.pivot_table(rows=['Group', 'Product', 'State'],
values = ['JAN', 'FEB', 'MAR', 'APR', 'MAY',
'JUN', 'JUL', 'AUG', 'SEP', 'OCT',
'NOV', 'DEC'], fill_value=0, margins=True aggfunc=sum)
cols = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']
#I used this method to prevent the month names from being alphabetically sorted
pivot = pivot[cols]
數據透視表的部分看起來像這樣...
JUN JUL AUG
Group Product State
Group A Product A AZ 0 0 0
CO 0 0 0
GA 0 0 0
IL 0 0 0
IN 0 0 0
KS 0 0 0
MN 0 0 0
MO 0 0 0
我需要狀態的順序是如下...
state_order = ['AZ','CO','ID','NV','OR','UT','WA','IA','KS','MN','MO','NE','ND','SD','GA','IL','IN','OH','WI']
我試過reindex_axis()函數,在上面的列表中提供並指定level = 2。但是,各州仍按字母順序排序。
任何對修復的見解都將非常感謝。
可能是http://stackoverflow.com/questions/26707171/sort-pandas-dataframe-based-on-list – aensm 2015-02-24 16:14:44
的副本上面的文章中的方法對我的DataFrame中的重新排序和顯示觀察結果非常有效;但是,當我從DataFrame創建數據透視表時,排序會改變。狀態,這是在我原來的DataFrame中排序的屬性,按字母順序排序。 – marshackVB 2015-02-25 16:16:33
我相信我需要一種方法來通過提供一個列表專門重新排列數據透視表的多索引級別2(州名),儘管我已經嘗試過並且未能完成此任務。 – marshackVB 2015-02-25 16:27:24