Python分组依据总和,并且想知道排名前三的总和

时间:2018-11-21 13:28:57

标签: python pandas-groupby

import pandas as pd

df = pd.DataFrame({'customer': [1,2,1,3,1,2,3],
           "group_code": ['111', '111', '222', 
           '111', '111', '111', '333'],
          "ind_code": ['A', 'B', 'AA', 'A', 
          'AAA', 'C', 'BBB'],
          "amount": [100, 200, 140, 400, 225, 
          125, 600],
          "card": ['XXX', 'YYY', 'YYY', 'XXX', 
         'XXX', 'YYY', 'XXX']})
  agg = df.groupby(['card', 'group_code']).agg({'amount':'sum'}).reset_index()
  mask = agg.groupby('card') ['amount'].transform(max) == agg['amount']
 result = agg[mask]
 print(result)

使用上述数据框,我想按卡号分组并获取具有每张卡的最大金额总和的组代码。

预期的数据框应包含以下三列:

卡片,按组别最高的总金额,总金额最高的组的名称

我得到了预期的答案。 假设,而不是获得最大和和相应的组代码。从更大的角度看,我拥有14 GB的巨大数据集。在这种情况下,您可以帮我获取基于金额总和的特定卡的前3个组代码。

请帮助

0 个答案:

没有答案