diff --git a/python/pyspark/pandas/series.py b/python/pyspark/pandas/series.py index f7f8c89ab2783..bae8694015ede 100644 --- a/python/pyspark/pandas/series.py +++ b/python/pyspark/pandas/series.py @@ -398,14 +398,19 @@ def __init__( # type: ignore[no-untyped-def] self._anchor: DataFrame # type: ignore[annotation-unchecked] self._col_label: Label # type: ignore[annotation-unchecked] - if isinstance(data, DataFrame): + if isinstance(data, (DataFrame, Series)): assert dtype is None assert name is None assert not copy assert not fastpath - self._anchor = data - self._col_label = index + if isinstance(data, Series): + assert index is None + self._anchor = DataFrame(data) + self._col_label = self._anchor._internal.column_labels[0] + else: + self._anchor = data + self._col_label = index else: if isinstance(data, pd.Series): assert index is None diff --git a/python/pyspark/pandas/tests/series/test_series.py b/python/pyspark/pandas/tests/series/test_series.py index 7409bcc26c29d..443e2754613e8 100644 --- a/python/pyspark/pandas/tests/series/test_series.py +++ b/python/pyspark/pandas/tests/series/test_series.py @@ -103,6 +103,11 @@ def test_empty_series(self): self.assertTrue(pser_a.empty) + def test_series_from_series(self): + pser = ps.Series([1, 2, 3, 4, 5, 6, 7], name="x") + + self.assert_eq(ps.Series(pser), pser) + def test_all_null_series(self): pser_a = pd.Series([None, None, None], dtype="float64") pser_b = pd.Series([None, None, None], dtype="str")