Skip to content

Commit f75af03

Browse files
GH1307 Add Timedelta for tolerance arg in DataFrame/Series.reindex
1 parent ace58ea commit f75af03

File tree

4 files changed

+44
-2
lines changed

4 files changed

+44
-2
lines changed

pandas-stubs/core/frame.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack):
816816
level: int | _str = ...,
817817
fill_value: Scalar | None = ...,
818818
limit: int | None = None,
819-
tolerance: float | None = ...,
819+
tolerance: float | Timedelta | None = ...,
820820
) -> Self: ...
821821
@overload
822822
def rename(

pandas-stubs/core/series.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1234,7 +1234,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
12341234
level: int | _str | None = None,
12351235
fill_value: Scalar | None = None,
12361236
limit: int | None = None,
1237-
tolerance: float | None = None,
1237+
tolerance: float | Timedelta | None = None,
12381238
) -> Series[S1]: ...
12391239
def filter(
12401240
self,

tests/series/test_series.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3826,8 +3826,30 @@ def test_series_int_float() -> None:
38263826

38273827

38283828
def test_series_reindex() -> None:
3829+
"""Test Series.reindex without any arguments and with tolerance."""
38293830
s = pd.Series([1, 2, 3], index=[0, 1, 2])
38303831
check(assert_type(s.reindex([2, 1, 0]), "pd.Series[int]"), pd.Series, np.integer)
3832+
check(
3833+
assert_type(
3834+
s.reindex([2, 1, 0], method="backfill", tolerance=1), "pd.Series[int]"
3835+
),
3836+
pd.Series,
3837+
np.integer,
3838+
)
3839+
3840+
sr = pd.Series([1, 2], pd.to_datetime(["2023-01-01", "2023-01-02"]))
3841+
check(
3842+
assert_type(
3843+
sr.reindex(
3844+
index=pd.to_datetime(["2023-01-02", "2023-01-03"]),
3845+
method="ffill",
3846+
tolerance=pd.Timedelta("1D"),
3847+
),
3848+
"pd.Series[int]",
3849+
),
3850+
pd.Series,
3851+
np.integer,
3852+
)
38313853

38323854

38333855
def test_series_reindex_like() -> None:

tests/test_frame.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3178,9 +3178,29 @@ def test_frame_stack() -> None:
31783178

31793179

31803180
def test_frame_reindex() -> None:
3181+
"""Test DataFrame.reindex with different arguments."""
31813182
# GH 84
31823183
df = pd.DataFrame({"a": [1, 2, 3]}, index=[0, 1, 2])
31833184
check(assert_type(df.reindex([2, 1, 0]), pd.DataFrame), pd.DataFrame)
3185+
check(
3186+
assert_type(df.reindex([2, 1, 0], method="pad", tolerance=2.3), pd.DataFrame),
3187+
pd.DataFrame,
3188+
)
3189+
3190+
# GH1307
3191+
sr = pd.Series([1, 2], pd.to_datetime(["2023-01-01", "2023-01-02"]))
3192+
df = sr.to_frame()
3193+
check(
3194+
assert_type(
3195+
df.reindex(
3196+
index=pd.to_datetime(["2023-01-02", "2023-01-03"]),
3197+
method="ffill",
3198+
tolerance=pd.Timedelta("1D"),
3199+
),
3200+
pd.DataFrame,
3201+
),
3202+
pd.DataFrame,
3203+
)
31843204

31853205

31863206
def test_frame_reindex_like() -> None:

0 commit comments

Comments
 (0)