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