Я пытаюсь использовать groupby
, nlargest
и sum
функции в Pandas вместе, но проблема с его работой.Pandas groupby самая крупная сумма
State County Population
Alabama a 100
Alabama b 50
Alabama c 40
Alabama d 5
Alabama e 1
...
Wyoming a.51 180
Wyoming b.51 150
Wyoming c.51 56
Wyoming d.51 5
Я хочу использовать groupby
для выбора государством, а затем получить 2 верхних округов по численности населения. Затем используйте только те из трех верхних номеров графства, чтобы получить сумму для этого состояния.
В конце концов, у меня будет список, который будет иметь состояние и население (из его двух верхних уездов).
Я могу получить groupby
и nlargest
, но получение суммы nlargest(2)
- вызов.
линия у меня сейчас просто: df.groupby('State')['Population'].nlargest(2)
Вы должны исправить это, избавившись от применить, используя 'df.groupby («State») [«Population»]. nlargest (2) .sum (level = 0) ' –
@ cᴏʟᴅsᴘᴇᴇᴅ: ваше предложенное решение' .nlargest (2) .sum (level = 0) 'на самом деле медленнее, чем использование' apply', когда размер файловой системы является существенным. «Уровень» kwarg в 'sum' выполняет вторую групповую операцию под капотом, которая, как я предполагаю, является источником дополнительных накладных расходов. – root
Это удивительно. Таким образом, одна группа + применяет козыри двух групп. Узнал что-то новое, ура! –