选择带有熊猫的分组数据框的特定组

时间:2020-05-28 20:34:43

标签: python pandas dataframe

我有以下数据框:

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方法,但是此方法需要包含Date和Category键的元组。有没有办法只过滤出带有B的类别?

2 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:0)

将过滤器应用于您的 groupby 数据框,其中 Category 等于 B

filter=df['Category']=='B'
df[filter].groupby([df.index.month, df['Category'])['Amount'].sum()
相关问题