Skip to content

Commit 9bc20d6

Browse files
committed
BUG: fix buglet with xs with level, GH #371
1 parent 8e2a4ca commit 9bc20d6

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

pandas/core/indexing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def _getitem_tuple(self, tup):
9797
if isinstance(self.obj._get_axis(0), MultiIndex):
9898
try:
9999
return self._get_label(tup, axis=0)
100-
except (KeyError, TypeError):
100+
except Exception:
101101
pass
102102

103103
try:

pandas/tests/test_multilevel.py

+8
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,14 @@ def test_xs_level(self):
222222

223223
assert_frame_equal(result, expected)
224224

225+
index = MultiIndex.from_tuples([('x', 'y', 'z'), ('a', 'b', 'c'),
226+
('p', 'q', 'r')])
227+
df = DataFrame(np.random.randn(3, 5), index=index)
228+
result = df.xs('c', level=2)
229+
expected = df[1:2]
230+
expected.index = expected.index.droplevel(2)
231+
assert_frame_equal(result, expected)
232+
225233
def test_xs_level_series(self):
226234
s = self.frame['A']
227235
result = s[:, 'two']

0 commit comments

Comments
 (0)