Pandas groupby object filtering Pandas groupby object filtering pandas pandas

Pandas groupby object filtering


I think you need add reset_index and then output is DataFrame. Last use boolean indexing:

df = df[['color','make','year']].groupby(['color','make','year'])                                .size()                                .reset_index(name='count')df1 = df[df.color == 'black']


Option 1
Filter ahead of time

cols = ['color','make','year']df[df.color == 'black', cols].grouby(cols).size()

Option 2Use xs for index cross sections

cols = ['color','make','year']grp = df[cols].groupby(cols).size()df.xs('black', level='color', drop_level=False)

or

df.xs('honda', level='make', drop_level=False)

or

df.xs(2011, level='year', drop_level=False)