У меня есть панд данных рамки:Нахождение максимального появления значения столбца, после группы по на другой колонке
id city
[email protected] Bangalore
[email protected] Mumbai
[email protected] Jamshedpur
[email protected] Jamshedpur
[email protected] Bangalore
[email protected] Mumbai
[email protected] Vijayawada
[email protected] Vijayawada
[email protected] Vijayawada
Я хочу найти ID-мудрое название города максимумом. Так что для данного идентификатора я могу сказать, что - это его любимый город:
id city
[email protected] Bangalore
[email protected] Vijayawada
[email protected] Jamshedpur
Использование GroupBy идентификатор и город дает:
id city count
0 [email protected] Bangalore 2
1 [email protected] Mumbai 2
2 [email protected] Vijayawada 3
3 [email protected] Jamshedpur 2
Как действовать дальше? Я считаю, что некоторые групповые заявки будут делать это, но не знают, что именно будет делать трюк. Поэтому, пожалуйста, предложите.
Если какой-то идентификатор имеет одинаковое количество для двух или трех городов, я в порядке с возвращением любого из этих городов.
Другой вариант 'pd.crosstab (ДФ [ 'город'], [ДФ 'ид']). Idxmax (ось = 0)' 'хотя crosstab' может генерировать очень большой фрейм, если у вас много уникальных значений для id и city. –
для DataFrame, о котором я упоминал, этот фрагмент кросс-таблицы дает мне только [email protected] Запись Vijayawada. я думаю, что он находит максимальное количество городов на общем наборе идентификаторов. Не указывается id id max city count. – Satya
Подход [pandas recommended] (https://github.com/pandas-dev/pandas/issues/7301) - это 'groupby ('id'). Apply (your_custom_function)', за мой ответ – smci