Skip to content

Commit 87a2853

Browse files
committed
fix return type of series pct_change, add test for series.pct_change
1 parent bf84514 commit 87a2853

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

pandas-stubs/core/series.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
15531553
freq: DateOffset | timedelta | _str | None = ...,
15541554
*,
15551555
fill_value: Scalar | NAType | None = ...,
1556-
) -> Series[S1]: ...
1556+
) -> Series[float]: ...
15571557
def first_valid_index(self) -> Scalar: ...
15581558
def last_valid_index(self) -> Scalar: ...
15591559
@overload

tests/test_frame.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2428,10 +2428,13 @@ def test_groupby_series_methods() -> None:
24282428

24292429
def test_dataframe_pct_change() -> None:
24302430
df = pd.DataFrame({"x": [1, 2, 2, 3, 3], "y": [10, 20, 30, 40, 50]})
2431-
df.pct_change()
2432-
df.pct_change(fill_method=None)
2433-
df.pct_change(axis="columns", periods=-1)
2434-
df.pct_change(fill_value=0)
2431+
check(assert_type(df.pct_change(), pd.DataFrame), pd.DataFrame)
2432+
check(assert_type(df.pct_change(fill_method=None), pd.DataFrame), pd.DataFrame)
2433+
check(
2434+
assert_type(df.pct_change(axis="columns", periods=-1), pd.DataFrame),
2435+
pd.DataFrame,
2436+
)
2437+
check(assert_type(df.pct_change(fill_value=0), pd.DataFrame), pd.DataFrame)
24352438

24362439

24372440
def test_indexslice_setitem():

tests/test_series.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,26 @@ def test_types_shift() -> None:
441441
check(assert_type(s.shift(freq="1D"), pd.Series), pd.Series, np.integer)
442442

443443

444+
def test_series_pct_change() -> None:
445+
s = pd.Series([1, 2, 3], index=pd.date_range("2020", periods=3))
446+
check(assert_type(s.pct_change(), "pd.Series[float]"), pd.Series, np.floating)
447+
check(
448+
assert_type(s.pct_change(fill_method=None), "pd.Series[float]"),
449+
pd.Series,
450+
np.floating,
451+
)
452+
check(
453+
assert_type(s.pct_change(periods=-1), "pd.Series[float]"),
454+
pd.Series,
455+
np.floating,
456+
)
457+
check(
458+
assert_type(s.pct_change(fill_value=0), "pd.Series[float]"),
459+
pd.Series,
460+
np.floating,
461+
)
462+
463+
444464
def test_types_rank() -> None:
445465
s = pd.Series([1, 1, 2, 5, 6, np.nan])
446466
s.rank()

0 commit comments

Comments
 (0)