Skip to content
Next Next commit
DEPR: remove *args, **kwargs on resample methods
  • Loading branch information
kostyafarber committed Jan 28, 2023
commit 9ab0404668c0e7098667c99338a811a06d92d818
40 changes: 1 addition & 39 deletions pandas/core/resample.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
TimestampConvertibleTypes,
npt,
)
from pandas.compat.numpy import function as nv
from pandas.errors import (
AbstractMethodError,
DataError,
Expand Down Expand Up @@ -899,75 +898,54 @@ def sum(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("sum", args, kwargs)
return self._downsample("sum", numeric_only=numeric_only, min_count=min_count)

@doc(GroupBy.prod)
def prod(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("prod", args, kwargs)
return self._downsample("prod", numeric_only=numeric_only, min_count=min_count)

def min(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("min", args, kwargs)
return self._downsample("min", numeric_only=numeric_only, min_count=min_count)

def max(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("max", args, kwargs)
return self._downsample("max", numeric_only=numeric_only, min_count=min_count)

@doc(GroupBy.first)
def first(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("first", args, kwargs)
return self._downsample("first", numeric_only=numeric_only, min_count=min_count)

@doc(GroupBy.last)
def last(
self,
numeric_only: bool = False,
min_count: int = 0,
*args,
**kwargs,
):
nv.validate_resampler_func("last", args, kwargs)
return self._downsample("last", numeric_only=numeric_only, min_count=min_count)

@doc(GroupBy.median)
def median(self, numeric_only: bool = False, *args, **kwargs):
nv.validate_resampler_func("median", args, kwargs)
def median(self, numeric_only: bool = False):
return self._downsample("median", numeric_only=numeric_only)

def mean(
self,
numeric_only: bool = False,
*args,
**kwargs,
):
"""
Compute mean of groups, excluding missing values.
Expand All @@ -986,15 +964,12 @@ def mean(
DataFrame or Series
Mean of values within each group.
"""
nv.validate_resampler_func("mean", args, kwargs)
return self._downsample("mean", numeric_only=numeric_only)

def std(
self,
ddof: int = 1,
numeric_only: bool = False,
*args,
**kwargs,
):
"""
Compute standard deviation of groups, excluding missing values.
Expand All @@ -1017,15 +992,12 @@ def std(
DataFrame or Series
Standard deviation of values within each group.
"""
nv.validate_resampler_func("std", args, kwargs)
return self._downsample("std", ddof=ddof, numeric_only=numeric_only)

def var(
self,
ddof: int = 1,
numeric_only: bool = False,
*args,
**kwargs,
):
"""
Compute variance of groups, excluding missing values.
Expand All @@ -1049,36 +1021,26 @@ def var(
DataFrame or Series
Variance of values within each group.
"""
nv.validate_resampler_func("var", args, kwargs)
return self._downsample("var", ddof=ddof, numeric_only=numeric_only)

@doc(GroupBy.sem)
def sem(
self,
ddof: int = 1,
numeric_only: bool = False,
*args,
**kwargs,
):
nv.validate_resampler_func("sem", args, kwargs)
return self._downsample("sem", ddof=ddof, numeric_only=numeric_only)

@doc(GroupBy.ohlc)
def ohlc(
self,
*args,
**kwargs,
):
nv.validate_resampler_func("ohlc", args, kwargs)
return self._downsample("ohlc")

@doc(SeriesGroupBy.nunique)
def nunique(
self,
*args,
**kwargs,
):
nv.validate_resampler_func("nunique", args, kwargs)
return self._downsample("nunique")

@doc(GroupBy.size)
Expand Down
17 changes: 0 additions & 17 deletions pandas/tests/resample/test_datetime_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

from pandas._libs import lib
from pandas._typing import DatetimeNaTType
from pandas.errors import UnsupportedFunctionCall

import pandas as pd
from pandas import (
Expand Down Expand Up @@ -243,22 +242,6 @@ def _ohlc(group):
tm.assert_frame_equal(result, expected)


@pytest.mark.parametrize("func", ["min", "max", "sum", "prod", "mean", "var", "std"])
def test_numpy_compat(func, unit):
# see gh-12811
s = Series(
[1, 2, 3, 4, 5], index=date_range("20130101", periods=5, freq="s").as_unit(unit)
)
r = s.resample("2s")

msg = "numpy operations are not valid with resample"

with pytest.raises(UnsupportedFunctionCall, match=msg):
getattr(r, func)(func, 1, 2, 3)
with pytest.raises(UnsupportedFunctionCall, match=msg):
getattr(r, func)(axis=1)


def test_resample_how_callables(unit):
# GH#7929
data = np.arange(5, dtype=np.int64)
Expand Down