как выбрать группу из группового кадра данных, используя pandas - PullRequest
1 голос
/ 07 апреля 2020

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

company  year  mean salary
ABC      2018     3000
         2019     3400
LOL      2018     1200
         2019     3500

Я хочу выбрать данные, принадлежащие "LOL", мой желаемый результат будет :

company  year  mean salary
LOL      2018     1200
         2019     3500

Есть ли способ выбрать только определенную группу? Я пытался использовать функцию .filter на фрейме данных, но я смог применить ее только к таким строкам, как (лямбда-x: x> 1000), но не для значения индекса.

Любой совет будет оценен по достоинству!

1 Ответ

4 голосов
/ 07 апреля 2020

Используйте DataFrame.xs с drop_level=False, чтобы избежать удаления первого уровня:

df1 = df.xs('LOL', drop_level=False)

Или отфильтруйте по первому уровню с помощью Index.get_level_values:

df1 = df[df.index.get_level_values(0) == 'LOL']

print (df1)
              mean salary
company year             
LOL     2018         1200
        2019         3500
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...