Python groupby sum и хотел узнать 3 верхние суммы - PullRequest
0 голосов
/ 21 ноября 2018
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)

С указанным выше фреймом данных я хотел сгруппировать по номеру карты и получить групповой код, который имеет максимальную сумму суммы для каждой карты.

Ожидаемый фрейм данных должен иметь следующие 3 столбца:

Карта, наибольшая общая сумма суммы по группам, название группы с наибольшей общей суммой

Я получаю ответ, как и ожидалось.Предположим, вместо получения максимальной суммы и соответствующего кода группы.В целом, у меня есть огромный набор данных с 14 ГБ.В этом случае вы можете помочь мне в получении трех кодов группы для конкретной карты на основе суммы Суммы.

Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...