diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index ae4c6a830..6a3a1a0b1 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -1760,7 +1760,9 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack): @property def index(self) -> Index: ... @index.setter - def index(self, idx: Index) -> None: ... + def index( + self, idx: AnyArrayLike | SequenceNotStr[Hashable] | tuple[Hashable, ...] + ) -> None: ... @property def loc(self) -> _LocIndexerFrame[Self]: ... @property diff --git a/pandas-stubs/core/series.pyi b/pandas-stubs/core/series.pyi index 364da6029..d0111341f 100644 --- a/pandas-stubs/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -507,7 +507,9 @@ class Series(IndexOpsMixin[S1], NDFrame): @property def index(self) -> Index: ... @index.setter - def index(self, idx: Index) -> None: ... + def index( + self, idx: AnyArrayLike | SequenceNotStr[Hashable] | tuple[Hashable, ...] + ) -> None: ... @overload def reset_index( self, diff --git a/tests/series/test_series.py b/tests/series/test_series.py index 12326fd11..bbb72ce46 100644 --- a/tests/series/test_series.py +++ b/tests/series/test_series.py @@ -3982,3 +3982,12 @@ def test_series_explode() -> None: check(assert_type(s.explode(), pd.Series), pd.Series) check(assert_type(s.explode(ignore_index=True), pd.Series), pd.Series) + + +def test_series_index_setter() -> None: + """Test Series.index setter property GH1366.""" + sr = pd.Series(["a", "b"]) + + check(assert_type(sr.index, pd.Index), pd.Index) + sr.index = [2, 3] + check(assert_type(sr.index, pd.Index), pd.Index) diff --git a/tests/test_frame.py b/tests/test_frame.py index 31ce7e004..b72d0a80b 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -4813,3 +4813,12 @@ def test_from_records() -> None: ), pd.DataFrame, ) + + +def test_frame_index_setter() -> None: + """Test DataFrame.index setter property GH1366.""" + df = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]}) + + check(assert_type(df.index, pd.Index), pd.Index) + df.index = [2, 3] + check(assert_type(df.index, pd.Index), pd.Index)