BUG: multiindex slicers requires a unique index · Issue #7106 · pandas-dev/pandas (original) (raw)
This is actually not required, and so should work I think
(requires lexsorting only)
In [70]: df = DataFrame(dict(A = ['foo','foo','foo','foo'], B = ['a','a','a','a'], C = [1,2,1,3], D = [1,2,3,4])).set_index(['A','B','C']).sortlevel()
In [71]: df
Out[71]:
D
A B C
foo a 1 1
1 3
2 2
3 4
[4 rows x 1 columns]
In [72]: df.xs(1,level=2)
Out[72]:
D
A B
foo a 1
a 3
[2 rows x 1 columns]
In [73]: df.loc[(slice(None),slice(None),1),:]
ValueError: MultiIndex Slicing requires a unique index