Skip to content

Commit 14b071b

Browse files
committed
Add doc string to GroupBy methods
1 parent dbeb8b9 commit 14b071b

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*.
@@ -827,30 +805,6 @@ def count(self) -> Series:
827805
)
828806
return self._reindex_output(result, fill_value=0)
829807

830-
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="Series")
831-
def sum(self, numeric_only: bool = True, min_count: int = 0) -> Series:
832-
return super().sum(numeric_only=numeric_only, min_count=min_count)
833-
834-
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="Series")
835-
def prod(self, numeric_only: bool = True, min_count: int = 0) -> Series:
836-
return super().prod(numeric_only=numeric_only, min_count=min_count)
837-
838-
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="Series")
839-
def min(self, numeric_only: bool = False, min_count: int = -1) -> Series:
840-
return super().min(numeric_only=numeric_only, min_count=min_count)
841-
842-
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="Series")
843-
def max(self, numeric_only: bool = False, min_count: int = -1) -> Series:
844-
return super().max(numeric_only=numeric_only, min_count=min_count)
845-
846-
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="Series")
847-
def first(self, numeric_only: bool = False, min_count: int = -1) -> Series:
848-
return super().first(numeric_only=numeric_only, min_count=min_count)
849-
850-
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="Series")
851-
def last(self, numeric_only: bool = False, min_count: int = -1) -> Series:
852-
return super().last(numeric_only=numeric_only, min_count=min_count)
853-
854808
def _apply_to_column_groupbys(self, func):
855809
""" return a pass thru """
856810
return func(self)
@@ -1930,30 +1884,6 @@ def groupby_series(obj, col=None):
19301884
results.index = ibase.default_index(len(results))
19311885
return results
19321886

1933-
@doc(_agg_template, fname="sum", no=True, mc=0, return_type="DataFrame")
1934-
def sum(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
1935-
return super().sum(numeric_only=numeric_only, min_count=min_count)
1936-
1937-
@doc(_agg_template, fname="prod", no=True, mc=0, return_type="DataFrame")
1938-
def prod(self, numeric_only: bool = True, min_count: int = 0) -> DataFrame:
1939-
return super().prod(numeric_only=numeric_only, min_count=min_count)
1940-
1941-
@doc(_agg_template, fname="min", no=False, mc=-1, return_type="DataFrame")
1942-
def min(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1943-
return super().min(numeric_only=numeric_only, min_count=min_count)
1944-
1945-
@doc(_agg_template, fname="max", no=False, mc=-1, return_type="DataFrame")
1946-
def max(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1947-
return super().max(numeric_only=numeric_only, min_count=min_count)
1948-
1949-
@doc(_agg_template, fname="first", no=False, mc=-1, return_type="DataFrame")
1950-
def first(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1951-
return super().first(numeric_only=numeric_only, min_count=min_count)
1952-
1953-
@doc(_agg_template, fname="last", no=False, mc=-1, return_type="DataFrame")
1954-
def last(self, numeric_only: bool = False, min_count: int = -1) -> DataFrame:
1955-
return super().last(numeric_only=numeric_only, min_count=min_count)
1956-
19571887
boxplot = boxplot_frame_groupby
19581888

19591889

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.
@@ -1454,21 +1472,25 @@ def size(self):
14541472
result.name = self.obj.name
14551473
return self._reindex_output(result, fill_value=0)
14561474

1475+
@doc(_groupby_agg_method_template, fname="sum", no=True, mc=0)
14571476
def sum(self, numeric_only: bool = True, min_count: int = 0):
14581477
return self._agg_general(
14591478
numeric_only=numeric_only, min_count=min_count, alias="add", npfunc=np.sum
14601479
)
14611480

1481+
@doc(_groupby_agg_method_template, fname="prod", no=True, mc=0)
14621482
def prod(self, numeric_only: bool = True, min_count: int = 0):
14631483
return self._agg_general(
14641484
numeric_only=numeric_only, min_count=min_count, alias="prod", npfunc=np.prod
14651485
)
14661486

1487+
@doc(_groupby_agg_method_template, fname="min", no=False, mc=-1)
14671488
def min(self, numeric_only: bool = False, min_count: int = -1):
14681489
return self._agg_general(
14691490
numeric_only=numeric_only, min_count=min_count, alias="min", npfunc=np.min
14701491
)
14711492

1493+
@doc(_groupby_agg_method_template, fname="max", no=False, mc=-1)
14721494
def max(self, numeric_only: bool = False, min_count: int = -1):
14731495
return self._agg_general(
14741496
numeric_only=numeric_only, min_count=min_count, alias="max", npfunc=np.max
@@ -1491,6 +1513,7 @@ def get_loc_notna(x, loc: int):
14911513
else:
14921514
return get_loc_notna(x, loc=loc)
14931515

1516+
@doc(_groupby_agg_method_template, fname="first", no=False, mc=-1)
14941517
def first(self, numeric_only: bool = False, min_count: int = -1):
14951518
first_compat = partial(self._get_loc, loc=0)
14961519

@@ -1501,6 +1524,7 @@ def first(self, numeric_only: bool = False, min_count: int = -1):
15011524
npfunc=first_compat,
15021525
)
15031526

1527+
@doc(_groupby_agg_method_template, fname="last", no=False, mc=-1)
15041528
def last(self, numeric_only: bool = False, min_count: int = -1):
15051529
last_compat = partial(self._get_loc, loc=-1)
15061530

@@ -2618,9 +2642,6 @@ def _reindex_output(
26182642
return output.reset_index(drop=True)
26192643

26202644

2621-
GroupBy._add_numeric_operations()
2622-
2623-
26242645
@doc(GroupBy)
26252646
def get_groupby(
26262647
obj: NDFrame,

0 commit comments

Comments
 (0)