stack all levels of a MultiIndex
You can first find len
of levels, get range
and pass it to stack
:
print (df.columns.nlevels)
3
print (list(range(df.columns.nlevels)))
[0, 1, 2]
print (df.stack(list(range(df.columns.nlevels))))
0 a A One 0
Two 1
B One 2
Two 3
b A One 4
Two 5
B One 6
Two 7
1 a A One 8
Two 9
B One 10
Two 11
b A One 12
Two 13
B One 14
Two 15
dtype: int32