Skip to content

Commit

Permalink
ENH: Deprecate non-keyword arguments for Resampler.interpolate (panda…
Browse files Browse the repository at this point in the history
…s-dev#41699)

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* ENH: Deprecate non-keyword arguments for interpolate

* Update pandas/tests/resample/test_deprecated.py

Co-authored-by: Marco Edward Gorelli <marcogorelli@protonmail.com>
  • Loading branch information
2 people authored and JulianWgs committed Jul 3, 2021
1 parent 47e4eca commit 8996b93
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/source/whatsnew/v1.3.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,7 @@ Deprecations
- Deprecated passing arguments as positional (except for ``"codes"``) in :meth:`MultiIndex.codes` (:issue:`41485`)
- Deprecated passing arguments as positional in :meth:`Index.set_names` and :meth:`MultiIndex.set_names` (except for ``names``) (:issue:`41485`)
- Deprecated passing arguments (apart from ``cond`` and ``other``) as positional in :meth:`DataFrame.mask` and :meth:`Series.mask` (:issue:`41485`)
- Deprecated passing arguments as positional in :meth:`Resampler.interpolate` (other than ``"method"``) (:issue:`41485`)
- Deprecated passing arguments as positional in :meth:`DataFrame.clip` and :meth:`Series.clip` (other than ``"upper"`` and ``"lower"``) (:issue:`41485`)
- Deprecated special treatment of lists with first element a Categorical in the :class:`DataFrame` constructor; pass as ``pd.DataFrame({col: categorical, ...})`` instead (:issue:`38845`)
- Deprecated behavior of :class:`DataFrame` constructor when a ``dtype`` is passed and the data cannot be cast to that dtype. In a future version, this will raise instead of being silently ignored (:issue:`24435`)
Expand Down
2 changes: 2 additions & 0 deletions pandas/core/resample.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from pandas.util._decorators import (
Appender,
Substitution,
deprecate_nonkeyword_arguments,
doc,
)

Expand Down Expand Up @@ -832,6 +833,7 @@ def fillna(self, method, limit=None):
"""
return self._upsample(method, limit=limit)

@deprecate_nonkeyword_arguments(version=None, allowed_args=["self", "method"])
@doc(NDFrame.interpolate, **_shared_docs_kwargs)
def interpolate(
self,
Expand Down
27 changes: 27 additions & 0 deletions pandas/tests/resample/test_deprecated.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,3 +278,30 @@ def test_resample_base_with_timedeltaindex():

tm.assert_index_equal(without_base.index, exp_without_base)
tm.assert_index_equal(with_base.index, exp_with_base)


def test_interpolate_posargs_deprecation():
# GH 41485
idx = pd.to_datetime(["1992-08-27 07:46:48", "1992-08-27 07:46:59"])
s = Series([1, 4], index=idx)

msg = (
r"In a future version of pandas all arguments of Resampler\.interpolate "
r"except for the argument 'method' will be keyword-only"
)

with tm.assert_produces_warning(FutureWarning, match=msg):
result = s.resample("3s").interpolate("linear", 0)

idx = pd.to_datetime(
[
"1992-08-27 07:46:48",
"1992-08-27 07:46:51",
"1992-08-27 07:46:54",
"1992-08-27 07:46:57",
]
)
expected = Series([1.0, 1.0, 1.0, 1.0], index=idx)

expected.index._data.freq = "3s"
tm.assert_series_equal(result, expected)

0 comments on commit 8996b93

Please sign in to comment.