2014-10-22 84 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