对所有可能的组合进行排名

时间:2014-10-22 00:22:22

标签: python numpy pandas

假设我有下面的示例数据表:

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 

理想情况下,我想在熊猫中这样做,但愿意接受其他想法。对于能告诉我这种分析的正确名称的人来说也是奖励积分。

1 个答案:

答案 0 :(得分: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