Pandas сгруппировать по нескольким столбцам, применить функцию, затем вернуть больше всего - PullRequest
0 голосов
/ 16 февраля 2020

Я работал над проектом, в котором я хотел сделать следующее:

  • группировать по нескольким столбцам
  • вычислить среднее значение для группы
  • вернуть самые большие значения на группу

Казалось бы, все просто, потому что я все эти операции ясно себе представлял. Я сделал что-то вроде этого:

new_df = old_df[['Column_1', 'Column_2', 'Column_3']].groupby(['Column_1', 'Column_2'])['Column_3'].mean()

new_df_2 = new_df.reset_index()

nlargest_df = new_df_2.groupby(['Column_1', 'Column_2']).head(3)

Это решение встречается повсюду в inte rnet, как, например, здесь Но, похоже, оно не работает в моем случае. В возвращенном фрейме данных есть все записи для каждой группы, а не только для верхних 3. Поэтому я закончил тем, что создал фрейм данных для каждой группы, отсортировал его по результату агрегации и выбрал заголовок в этом фильтрованном фрейме данных, но это не масштабируется Что если бы у меня было 1000 категорий?

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