给定此数据框和数据透视表:
import pandas as pd
df=pd.DataFrame({'A':['x','y','z','x','y','z'],
'B':['one','one','one','two','two','two'],
'C':[7,5,3,4,1,6]})
df
A B C
0 x one 7
1 y one 5
2 z one 3
3 x two 4
4 y two 1
5 z two 6
table = pd.pivot_table(df, index=['A', 'B'],aggfunc=np.sum)
table
A B
x one 7
two 4
y one 5
two 1
z one 3
two 6
Name: C, dtype: int64
我想对数据透视表进行排序,以便在“C&C”范围内对这些值进行降序排序。
像这样:
A B
x one 7
two 4
y one 5
two 1
z two 6
one 3
提前致谢!
答案 0 :(得分:1)
试试这个:
In [12]: pd.pivot_table(df, index=['A', 'B'],aggfunc='sum').reset_index().sort_values(by=['A','C'], ascending=[1,0])
Out[12]:
A B C
0 x one 7
1 x two 4
2 y one 5
3 y two 1
5 z two 6
4 z one 3
答案 1 :(得分:1)
这应该有效
df.groupby(['A'])['B', 'C'].apply(lambda x: x.set_index('B').sort_values('C', ascending=0))