Pandas pivot table嵌套排序第2部分

时间:2016-05-11 14:40:08

标签: sorting python-3.x pandas pivot-table

给定此数据框和数据透视表:

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

提前致谢!

2 个答案:

答案 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))