df.groupby() does not allow to use name of index at level 0 when not using a MultiIndex (original) (raw)
In [24]: df = pd.DataFrame({ ....: 'exp' : ['A']*3 + ['B']*3, ....: 'var1' : range(6), ....: })
In [25]: df = df.set_index(['exp'])
In [26]: df.index.names Out[27]: ['exp']
In [28]: df Out[28]: var1 exp A 0 A 1 A 2 B 3 B 4 B 5
In [29]: try: ....: df.groupby(level='exp').size() ....: except ValueError as e: ....: print('index can not be accessed by name') ....: print(e) ....: index can not be accessed by name level > 0 only valid with MultiIndex
at this point I would argue that the level 'exp' is level 0,
and therefore this should work.
In [29]: df1 = df.groupby(level=0).size()
In [30]: df1 Out[30]: exp A 3 B 3 dtype: int64