我遇到了熊貓樞軸功能的麻煩。我試圖按月份和年度調整銷售數據。該數據集如下:熊貓數據透視表按字母順序排列分類數據(錯誤地)當添加列參數
Customer - Sales - Month Name - Year
a - 100 - january - 2013
a - 120 - january - 2014
b - 220 - january - 2013
爲了月份名稱排序正確我添加了一個列與月的名稱作爲分類數據。
dataset['Month'] = dataset['Month Name'].astype('category')
dataset['Month'].cat.set_categories(['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],inplace=True)
dataset.pop('Month Name')
當我使用功能:
pt = dataset.pivot_table(values="Sales", index="Month")
我得到預期的結果
Month
January 3620302.79
February 3775507.25
March 4543839.69
然而,當我遇到年月轉動月份按字母順序排序。
print dataset.pivot_table(values='Sales', index="Month", columns="Year", aggfunc="sum")
Year 2011 2012 2013 2014
Month
April 833692.19 954483.28 1210847.85 1210926.61
August 722604.75 735078.52 879905.23 1207211.00
December 779873.51 1053441.71 1243745.73 NaN
我很感激任何幫助正確排序上個代碼示例中的月份名稱。
感謝,
弗蘭克
所以,結果是指數''object'' D類,作爲它的由自動轉換關鍵點,它不會按照c進行重新排序ategory。所以這是一個錯誤;熊貓還不支持CategoricalIndex,因爲這將是理想的結果。這裏是錯誤報告:https://github.com/pydata/pandas/issues/8731 – Jeff 2014-11-04 21:55:49
@Frank,我提供了一個答案,你有沒有回顧? – Anzel 2014-11-09 20:33:41
當我在類別列中使用pivot_table並且該類別在DataFrame中沒有值時,我遇到了類似問題pandas sais無法將NA轉換爲整數 – Diego 2015-04-28 19:46:48