2014-10-22 55 views
0

比方說,我有樣本數據見下表:排名所有可能GROUPBY組合

Country Group Revenue 
US  A   $50 
US  B   $125 
MX  A   $100 
CA  A   $70 
CA  C   $10 

我想要做的是整個國家和集團這樣每一個可能的組合計算收入:

US $175 
MX $100 
CA $80 
A $220 
B $125 
C $10 
US, A $50 
US, B $125 
MX, A $100 
CA, A $70 
CA, C $10 

,然後可以進行排序,看看哪些組合提供了最高收入:

A  $220 
US  $175 
B  $125 
US, B $125 
MX  $100 
MX, A $100 
CA  $80 
CA, A $70 
US, A $50 
C  $10 
CA, C $10 

井盟友,我想在熊貓中這樣做,但可以接受其他想法。對於任何能夠告訴我這種類型分析的正確名稱的人來說,這也是獎勵積分。

回答

0

你可以這樣做:

>>> pd.concat([df, 
...   df.groupby('Country', as_index=False).sum(), 
...   df.groupby('Group', as_index=False).sum()], 
...   ignore_index=True).sort(columns='Revenue', 
...         ascending=False).fillna('') 
    Country Group Revenue 
8    A  220 
7  US   175 
1  US  B  125 
9    B  125 
2  MX  A  100 
6  MX   100 
5  CA    80 
3  CA  A  70 
0  US  A  50 
4  CA  C  10 
10    C  10