Pandas: Как найти [] по MultiIndex - PullRequest
2 голосов
/ 02 мая 2020

Я получил странную ошибку в своем коде. Обычно я хочу получить часть таблицы DataFrame с помощью MultiIndex

DataFrame будет иметь вид

more_than_one_race = df.groupby(['department', 'position'])['Pay Rate'].count()
more_than_one_race = more_than_one_race[more_than_one_race > 1].index
df.loc[more_than_one_race]

И я получил следующую ошибку:

ValueError: не удалось передать операнды вместе с фигурами (3,2) (3,) (3,2)

1 Ответ

0 голосов
/ 02 мая 2020

Существует проблема MutliIndex имеет 3 уровня, и вы хотите фильтровать по 2 уровням MultiIndex, поэтому номера уровней не совпадают, поэтому возникает ошибка.

Лучше использовать здесь GroupBy.transform с boolean indexing:

ser = df.groupby(['department', 'position'])['Pay Rate'].transform('count')

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