Не удаётся вывести в датафрейме самые популярные смайлики в регионе

У нас есть готовый датафрейм (за быдлокод извините), который был получен путём парсинга страниц пользователей ВК и вытягиванием из них смайликов из ковидного статуса. В его итоговом формате есть три столбца:

  1. регион России
  2. смайлик (в формате unicode, df видит его как str)
  3. кол-во страниц ВК, которые его используют в статусе

Сырой код c ненужными, позже дропнутыми столбцами text emoji и city

Главная идея - получить в итоге датафрейм в три столбца: список регионов, самый популярный в нём смайлик (мы определили его по кол-ву использующих его id-шников) и сам смайлик. Пытались сгруппировать по регионам - не вышло, к тому же данные выходят в формате Series. К тому же возникла проблема - в регионе может быть несколько самых популярных смайликов из-за того, что их может выбрать одинаково кол-во пользователей.

Вопрос знатокам: как вывести один самый популярный смайлик в регионе в формате Регион-Смайлик-Количество?

Пока остановились на этом:

xyi.groupby('Регион')['emoji'].value_counts()

алтайский край       :baby_chick:        35
                     :alien:        34
                     :clown:        33
                     :zany_face:        27
                     :sunrise:        26
                              ..
ярославская область  :paperclip:         2
                     :pray_tone1:        2
                     :exploding_head:         2
                     :bell:         1
                     :dove:         1
Name: emoji, Length: 2595, dtype: int64```

Ответы (2 шт):

Автор решения: passant

Как новому участнику форума подсказываю - выкладывать надо минимальный, но обязательно воспроизводимый фрагмент кода. Что-бы люди могли запустить,посмотреть как оно работает и дать вам проверенный ответ.

По тому что есть могу только сказать - в Pandas есть метод aggregate ( agg), применяемый после группирования данных, в параметрах которого можно указывать другую функцию, в вашем случае, очевидно 'maх'. На 99% уверен, что это то, что вам надо, но без воспроизводимого примера - теперь проверяйте сами.

→ Ссылка
Автор решения: MaxU

Попробуйте так:

res = xyi.groupby('Регион')['emoji'].apply(lambda x: x.mode().iloc[0]).reset_index()

PS ответ непроверенный, т.к. в вопросе нет воспроизводимого примера данных.

→ Ссылка