Is it possible to groupby a multi-index (2 levels) pandas dataframe by one of the multi-index levels ?
The only way I know of doing it is to reset_index on a multiindex and then set index again. I am sure there is a better way to do it, and I want to know how.
Yes, use the level
parameter of the groupby
method. Take a look here. Example:
In [26]: s
first second third
bar doo one 0.404705
two 0.577046
baz bee one -1.715002
two -1.039268
foo bop one -0.370647
two -1.157892
qux bop one -1.344312
two 0.844885
dtype: float64
In [27]: s.groupby(level=['first','second']).sum()
first second
bar doo 0.981751
baz bee -2.754270
foo bop -1.528539
qux bop -0.499427
dtype: float64