Skip to content

Commit 1ee2bda

Browse files
authored
Return view for xs when droplevel=False with regular Index (#37832)
1 parent 441ccb0 commit 1ee2bda

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

pandas/core/generic.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3759,7 +3759,7 @@ class animal locomotion
37593759
dtype=new_values.dtype,
37603760
)
37613761
elif is_scalar(loc):
3762-
result = self.iloc[:, [loc]]
3762+
result = self.iloc[:, slice(loc, loc + 1)]
37633763
elif axis == 1:
37643764
result = self.iloc[:, loc]
37653765
else:

pandas/tests/frame/indexing/test_xs.py

+8
Original file line numberDiff line numberDiff line change
@@ -319,3 +319,11 @@ def test_xs_droplevel_false(self):
319319
result = df.xs("a", axis=1, drop_level=False)
320320
expected = DataFrame({"a": [1]})
321321
tm.assert_frame_equal(result, expected)
322+
323+
def test_xs_droplevel_false_view(self):
324+
# GH#37832
325+
df = DataFrame([[1, 2, 3]], columns=Index(["a", "b", "c"]))
326+
result = df.xs("a", axis=1, drop_level=False)
327+
df.values[0, 0] = 2
328+
expected = DataFrame({"a": [2]})
329+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)