我创建了一个三级多指标(组,产品和状态)的数据透视表。状态级别按字母顺序自动排序,但我需要将排序更改为自定义的非字母排序。我可能还需要以类似的方式重新订购组和产品级别。熊猫枢轴表 - 多指数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