Не удаётся вывести в датафрейме самые популярные смайлики в регионе
У нас есть готовый датафрейм (за быдлокод извините), который был получен путём парсинга страниц пользователей ВК и вытягиванием из них смайликов из ковидного статуса. В его итоговом формате есть три столбца:
- регион России
- смайлик (в формате unicode, df видит его как str)
- кол-во страниц ВК, которые его используют в статусе
Главная идея - получить в итоге датафрейм в три столбца: список регионов, самый популярный в нём смайлик (мы определили его по кол-ву использующих его 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 шт):
Как новому участнику форума подсказываю - выкладывать надо минимальный, но обязательно воспроизводимый фрагмент кода. Что-бы люди могли запустить,посмотреть как оно работает и дать вам проверенный ответ.
По тому что есть могу только сказать - в Pandas есть метод aggregate ( agg), применяемый после группирования данных, в параметрах которого можно указывать другую функцию, в вашем случае, очевидно 'maх'. На 99% уверен, что это то, что вам надо, но без воспроизводимого примера - теперь проверяйте сами.
Попробуйте так:
res = xyi.groupby('Регион')['emoji'].apply(lambda x: x.mode().iloc[0]).reset_index()
PS ответ непроверенный, т.к. в вопросе нет воспроизводимого примера данных.
