Mik*_*ike 4 python pivot-table dataframe pandas
我试图通过pandas数据透视表中的行总和对最后一列/ margin/aggrfunc进行降序排序.我知道我在这里缺少一些简单的东西,但我无法弄明白.
dataframe/pivot表:
WIDGETS
DATE 2/1/16 2/2/16 2/3/16 All
NAME
PERSON1 43 5 48
PERSON2 4 7 11
PERSON3 56 143 199
Run Code Online (Sandbox Code Playgroud)
我需要做的还是通过aggfunc/margin来排序:
WIDGETS
DATE 2/1/16 2/2/16 2/3/16 All
NAME
PERSON3 56 143 199
PERSON1 43 5 48
PERSON2 4 7 11
pt = pd.pivot_table(df,values=['WIDGETS'],index=['NAME'],columns=['DATE'],aggfunc=len,fill_value='',margins=True,margins_name='WIDGETS')
pt.sort_values(by='WIDGETS',ascending=False,inplace=True)
Run Code Online (Sandbox Code Playgroud)
错误: ValueError:无法按多列索引中的列WIDGETS排序,您需要明确提供所有级别
建议?
你可以在函数sort_values和参数中使用元组ascending:
print pt
WIDGETS
DATE 2/1/16 2/2/16 2/3/16 All
NAME
PERSON1 1 2 3
PERSON2 2 4 3 9
PERSON3 1 1 2
All 4 6 4 14
pt.sort_values(by=('WIDGETS', 'All'), ascending=False,inplace=True)
print pt
WIDGETS
DATE 2/1/16 2/2/16 2/3/16 All
NAME
All 4 6 4 14
PERSON2 2 4 3 9
PERSON1 1 2 3
PERSON3 1 1 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6690 次 |
| 最近记录: |