diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index d908638c4706b..10936b60031bf 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -504,7 +504,7 @@ def get_result(self): cons = sample._constructor_expanddim index, columns = self.new_axes - df = cons(data, index=index) + df = cons(data, index=index, copy=self.copy) df.columns = columns return df.__finalize__(self, method="concat") diff --git a/pandas/tests/reshape/concat/test_concat.py b/pandas/tests/reshape/concat/test_concat.py index 17a7089f0ac85..2b6686d772b6a 100644 --- a/pandas/tests/reshape/concat/test_concat.py +++ b/pandas/tests/reshape/concat/test_concat.py @@ -653,3 +653,14 @@ def test_concat_posargs_deprecation(): result = concat([df, df2], 0) expected = DataFrame([[1, 2, 3], [4, 5, 6]], index=["a", "b"]) tm.assert_frame_equal(result, expected) + + +def test_concat_series_copy_false(): + # GH 42501 + first_position_value = 1 + first_series = Series([first_position_value, 2], dtype=np.int64) + + df = concat([first_series, Series([3, 4], dtype=np.int64)], axis=1, copy=False) + + df.iloc[0, 0] = first_position_value + 1 + assert first_series.iloc[0] != first_position_value