Skip to content

Commit a71a970

Browse files
phoflmeeseeksmachine
authored andcommitted
Backport PR pandas-dev#51945: BUG: swapaxes creating result with read_only array
1 parent 6da8258 commit a71a970

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
@@ -748,7 +748,7 @@ def swapaxes(
748748
mapping = {i: j, j: i}
749749

750750
new_axes = [self._get_axis(mapping.get(k, k)) for k in range(self._AXIS_LEN)]
751-
new_values = self.values.swapaxes(i, j)
751+
new_values = self._values.swapaxes(i, j) # type: ignore[union-attr]
752752
if (
753753
using_copy_on_write()
754754
and self._mgr.is_single_block

pandas/tests/copy_view/test_methods.py

+8
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,14 @@ def test_swapaxes_single_block(using_copy_on_write):
641641
tm.assert_frame_equal(df, df_orig)
642642

643643

644+
def test_swapaxes_read_only_array():
645+
df = DataFrame({"a": [1, 2], "b": 3})
646+
df = df.swapaxes(axis1="index", axis2="columns")
647+
df.iloc[0, 0] = 100
648+
expected = DataFrame({0: [100, 3], 1: [2, 3]}, index=["a", "b"])
649+
tm.assert_frame_equal(df, expected)
650+
651+
644652
@pytest.mark.parametrize(
645653
"method, idx",
646654
[

0 commit comments

Comments
 (0)