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)