Извлечь наиболее частую комбинацию из 2 столбцов из кадра данных panda по количеству - PullRequest
0 голосов
/ 28 мая 2019

Я относительно новичок в программировании на Python. У меня есть датафрейм, df, из которого мне нужно вытащить комбинацию из 2 столбцов с наибольшим количеством вхождений

Я следовал нижеприведенному мыслительному процессу - Выполнена ли группировка данных по запрошенным 2 столбцам? - Выполнен подсчет строк (отсюда используется ось = 0), которые принадлежат каждой из этих группировок - На основании количества строк, извлеченных для каждой уникальной группы / комбинации, я попытался отсортировать эти строки

Код ниже

output = df.groupby(['column1','column2']).count().sort_values(by=['column1','column2'], axis = 0)[0]

Getting some error like this:
in get_loc return self._engine.get_loc(key)

resulting into this exception:
in get_loc return self._engine.get_loc(self._maybe_cast_indexer(key))

Цените любую помощь здесь

1 Ответ

0 голосов
/ 28 мая 2019

Ваша ошибка вызвана [0] в конце вашей строки, где вы делаете groupby. Вы не опубликовали полное сообщение об ошибке, но держу пари, что у вас есть KeyError: 0. Это связано с тем, что в вашем индексе больше нет 0. Если вы посмотрите на DataFrame, созданный после groupby, вы увидите, что теперь у вас есть иерархический индекс, созданный из уникальных комбинаций значений column1 и column2.

Быстрое решение? Замените [0] на .iloc[0], чтобы получить строку в месте нулевого индекса.

output = df.groupby(['column1','column2']).count().sort_values(by=['column1','column2'], axis = 0).iloc[0]

Или используйте .head(1), чтобы получить верхний ряд DataFrame.

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