팬더 피벗 기능에 문제가 발생했습니다. 나는 판매 데이터를 월 단위로 피벗하려고합니다. 달 이름을 정렬하려면팬더 피벗 테이블 열을 추가 할 때 알파벳순으로 범주화 된 데이터 정렬 (잘못)
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'' DTYPE가된다 (그것을
M
불림) 다른 칼럼 [ '달'] 및datetime
로 변환 한 다음처럼pivot_table
여러 인덱스 세트 피벗 및 c에 따라 재정렬되지 않습니다. ategory. 그래서 그것은 버그입니다. pandas는 CategoricalIndex를 아직 지원하지 않습니다. 이상적인 결과입니다. 다음은 버그 보고서입니다. https://github.com/pydata/pandas/issues/8731 – Jeff@Frank, 답변을 제공해 주셨습니다. 아직 검토하지 않았습니까? – Anzel
범주 형 열과 함께 pivot_table을 사용하는 경우 비슷한 문제가 발생하고 범주에 DataFrame 값이 없습니다. pandas sais NA를 정수로 변환 할 수 없습니다. – Diego