Выберите определенную c группу сгруппированного фрейма данных с помощью pandas - PullRequest
1 голос
/ 28 мая 2020

У меня есть следующий фрейм данных:

df.index = df['Date']
df.groupby([df.index.month, df['Category'])['Amount'].sum()

Date   Category     Amount     
1      A            -125.35
       B            -40.00
                    ...
12     A            505.15
       B            -209.00

Я хотел бы сообщить сумму суммы для каждой категории B, например:

Date   Category     Amount     
1      B            -40.00
                    ...
12     B            -209.00

Я пробовал метод df.get_group но для этого метода нужен кортеж, содержащий ключ даты и категории. Есть ли способ отфильтровать только категории с B?

1 Ответ

2 голосов
/ 29 мая 2020

Вы можете использовать IndexSlice:

# groupby here
df_group = df.groupby([df.index.month, df['Category'])['Amount'].sum()

# report only Category B
df_group.loc[pd.IndexSlice[:,'B'],:]

Или запрос:

# query works with index level name too
df_group.query('Category=="B"')

Вывод:

               Amount
Date Category        
1    B          -40.0
12   B         -209.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...