Skip to content

Commit be54f6c

Browse files
committed
Add doc string to GroupBy methods
1 parent 4b96a52 commit be54f6c

File tree

2 files changed

+24
-73
lines changed

2 files changed

+24
-73
lines changed

pandas/core/groupby/generic.py

-70
Original file line numberDiff line numberDiff line change
@@ -87,28 +87,6 @@
8787
if TYPE_CHECKING:
8888
from pandas.core.internals import Block
8989

90-
_agg_template = """
91-
Compute {fname} of group values.
92-
93-
Parameters
94-
----------
95-
numeric_only : bool, default {no}
96-
Include only float, int, boolean columns. If None, will attempt to use
97-
everything, then use only numeric data.
98-
min_count : int, default {mc}
99-
The required number of valid values to perform the operation. If fewer
100-
than ``min_count`` non-NA values are present the result will be NA.
101-
102-
Returns
103-
-------
104-
{return_type}
105-
Computed {fname} of values within each group.
106-
107-
See Also
108-
--------
109-
{return_type}.groupby
110-
"""
111-
11290

11391
NamedAgg = namedtuple("NamedAgg", ["column", "aggfunc"])
11492
# TODO(typing) the return value on this callable should be any *scalar*.
@@ -835,30 +813,6 @@ def count(self) -> Series:
835813
)
836814
return self._reindex_output(result, fill_value=0)
837815

838-
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="Series")
839-
def sum(self, numeric_only: bool = True, min_count: int = 0) -> Series:
840-
return super().sum(numeric_only=numeric_only, min_count=min_count)
841-
842-
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="Series")
843-
def prod(self, numeric_only: bool = True, min_count: int = 0) -> Series:
844-
return super().prod(numeric_only=numeric_only, min_count=min_count)
845-
846-
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="Series")
847-
def min(self, numeric_only: bool = False, min_count: int = -1) -> Series:
848-
return super().min(numeric_only=numeric_only, min_count=min_count)
849-
850-
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="Series")
851-
def max(self, numeric_only: bool = False, min_count: int = -1) -> Series:
852-
return super().max(numeric_only=numeric_only, min_count=min_count)
853-
854-
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="Series")
855-
def first(self, numeric_only: bool = False, min_count: int = -1) -> Series:
856-
return super().first(numeric_only=numeric_only, min_count=min_count)
857-
858-
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="Series")
859-
def last(self, numeric_only: bool = False, min_count: int = -1) -> Series:
860-
return super().last(numeric_only=numeric_only, min_count=min_count)
861-
862816
def _apply_to_column_groupbys(self, func):
863817
""" return a pass thru """
864818
return func(self)
@@ -1946,30 +1900,6 @@ def groupby_series(obj, col=None):
19461900
results.index = ibase.default_index(len(results))
19471901
return results
19481902

1949-
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="DataFrame")
1950-
def sum(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
1951-
return super().sum(numeric_only=numeric_only, min_count=min_count)
1952-
1953-
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="DataFrame")
1954-
def prod(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
1955-
return super().prod(numeric_only=numeric_only, min_count=min_count)
1956-
1957-
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="DataFrame")
1958-
def min(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1959-
return super().min(numeric_only=numeric_only, min_count=min_count)
1960-
1961-
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="DataFrame")
1962-
def max(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1963-
return super().max(numeric_only=numeric_only, min_count=min_count)
1964-
1965-
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="DataFrame")
1966-
def first(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1967-
return super().first(numeric_only=numeric_only, min_count=min_count)
1968-
1969-
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="DataFrame")
1970-
def last(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1971-
return super().last(numeric_only=numeric_only, min_count=min_count)
1972-
19731903
boxplot = boxplot_frame_groupby
19741904

19751905

pandas/core/groupby/groupby.py

+24-3
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,24 @@ class providing the base-class of operations.
191191
""",
192192
)
193193

194+
_groupby_agg_method_template = """
195+
Compute {fname} of group values.
196+
197+
Parameters
198+
----------
199+
numeric_only : bool, default {no}
200+
Include only float, int, boolean columns. If None, will attempt to use
201+
everything, then use only numeric data.
202+
min_count : int, default {mc}
203+
The required number of valid values to perform the operation. If fewer
204+
than ``min_count`` non-NA values are present the result will be NA.
205+
206+
Returns
207+
-------
208+
Series or DataFrame
209+
Computed {fname} of values within each group.
210+
"""
211+
194212
_pipe_template = """
195213
Apply a function `func` with arguments to this %(klass)s object and return
196214
the function's result.
@@ -1468,21 +1486,25 @@ def size(self):
14681486
result = self._obj_1d_constructor(result)
14691487
return self._reindex_output(result, fill_value=0)
14701488

1489+
@doc(_groupby_agg_method_template, fname="sum", no=True, mc=0)
14711490
def sum(self, numeric_only: bool = True, min_count: int = 0):
14721491
return self._agg_general(
14731492
numeric_only=numeric_only, min_count=min_count, alias="add", npfunc=np.sum
14741493
)
14751494

1495+
@doc(_groupby_agg_method_template, fname="prod", no=True, mc=0)
14761496
def prod(self, numeric_only: bool = True, min_count: int = 0):
14771497
return self._agg_general(
14781498
numeric_only=numeric_only, min_count=min_count, alias="prod", npfunc=np.prod
14791499
)
14801500

1501+
@doc(_groupby_agg_method_template, fname="min", no=False, mc=-1)
14811502
def min(self, numeric_only: bool = False, min_count: int = -1):
14821503
return self._agg_general(
14831504
numeric_only=numeric_only, min_count=min_count, alias="min", npfunc=np.min
14841505
)
14851506

1507+
@doc(_groupby_agg_method_template, fname="max", no=False, mc=-1)
14861508
def max(self, numeric_only: bool = False, min_count: int = -1):
14871509
return self._agg_general(
14881510
numeric_only=numeric_only, min_count=min_count, alias="max", npfunc=np.max
@@ -1505,6 +1527,7 @@ def get_loc_notna(x, loc: int):
15051527
else:
15061528
return get_loc_notna(x, loc=loc)
15071529

1530+
@doc(_groupby_agg_method_template, fname="first", no=False, mc=-1)
15081531
def first(self, numeric_only: bool = False, min_count: int = -1):
15091532
first_compat = partial(self._get_loc, loc=0)
15101533

@@ -1515,6 +1538,7 @@ def first(self, numeric_only: bool = False, min_count: int = -1):
15151538
npfunc=first_compat,
15161539
)
15171540

1541+
@doc(_groupby_agg_method_template, fname="last", no=False, mc=-1)
15181542
def last(self, numeric_only: bool = False, min_count: int = -1):
15191543
last_compat = partial(self._get_loc, loc=-1)
15201544

@@ -2623,9 +2647,6 @@ def _reindex_output(
26232647
return output.reset_index(drop=True)
26242648

26252649

2626-
GroupBy._add_numeric_operations()
2627-
2628-
26292650
@doc(GroupBy)
26302651
def get_groupby(
26312652
obj: NDFrame,

0 commit comments

Comments
 (0)