Как сводить таблицы Pandas в порядке возрастания и убывания вместе? - PullRequest
0 голосов
/ 26 октября 2018
df=pd.DataFrame({'Country':["AU","GB","KR","US","GB","US","KR","AU","US"],'Region Manager':['TL','JS','HN','AL','JS','AL','HN','TL','AL'],'Campaign Stage':['Start','Develop','Develop','Launch','Launch','Start','Start','Launch','Develop'],'Curr_Sales': [453,562,236,636,893,542,125,561,371],'Curr_Revenue':[4530,7668,5975,3568,2349,6776,3046,1111,4852],'Prior_Sales': [235,789,132,220,569,521,131,777,898],'Prior_Revenue':[1530,2668,3975,5668,6349,7776,8046,2111,9852]})
pd.pivot_table(df, values=['Curr_Sales', 'Curr_Revenue','Prior_Sales','Prior_Revenue'],index=['Country', 'Region Manager','Campaign Stage'],aggfunc=np.sum,margins=True)

enter image description here У меня есть вышеупомянутая df и сводная таблица для выходов. Я хотел бы отсортировать сводную таблицу сначала по возрастанию «Стадия кампании» (Start-Develop-Launch), а затем по убыванию Curr_sales.

Кроме того, как бы я добавил промежуточные итоги для каждой страны?

1 Ответ

0 голосов
/ 27 октября 2018

вы можете использовать sort_values с обоими столбцами:

piv_df = pd.pivot_table(df, values=['Curr_Sales', 'Curr_Revenue','Prior_Sales','Prior_Revenue'],
                     index=['Country', 'Region Manager','Campaign Stage'],
                     aggfunc=np.sum,margins=True)


piv_df.sort_values(['Campaign Stage', 'Curr_Sales'], ascending=[True, False])

piv_df
                                       Curr_Revenue  Curr_Sales  \
Country Region Manager Campaign Stage                             
All                                           39875        4379   
GB      JS             Develop                 7668         562   
US      AL             Develop                 4852         371   
KR      HN             Develop                 5975         236   
GB      JS             Launch                  2349         893   
US      AL             Launch                  3568         636   
AU      TL             Launch                  1111         561   
US      AL             Start                   6776         542   
AU      TL             Start                   4530         453   
KR      HN             Start                   3046         125  

решение для промежуточных итогов вы можете увидеть в этом посте промежуточных итогов панд на groupby

...