core/maxframe/dataframe/groupby/__init__.py (54 lines of code) (raw):

# Copyright 1999-2025 Alibaba Group Holding Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # noinspection PyUnresolvedReferences from ..core import DataFrameGroupBy, GroupBy, SeriesGroupBy from .core import NamedAgg def _install(): from ..core import DATAFRAME_GROUPBY_TYPE, DATAFRAME_TYPE, GROUPBY_TYPE, SERIES_TYPE from .aggregation import agg from .apply import groupby_apply from .core import groupby from .cum import cumcount, cummax, cummin, cumprod, cumsum from .fill import bfill, ffill, fillna from .getitem import df_groupby_getitem from .head import head from .sample import groupby_sample from .transform import groupby_transform for cls in DATAFRAME_TYPE: setattr(cls, "groupby", groupby) for cls in SERIES_TYPE: setattr(cls, "groupby", groupby) for cls in GROUPBY_TYPE: setattr(cls, "agg", agg) setattr(cls, "aggregate", agg) setattr(cls, "sum", lambda groupby, **kw: agg(groupby, "sum", **kw)) setattr(cls, "prod", lambda groupby, **kw: agg(groupby, "prod", **kw)) setattr(cls, "max", lambda groupby, **kw: agg(groupby, "max", **kw)) setattr(cls, "min", lambda groupby, **kw: agg(groupby, "min", **kw)) setattr(cls, "count", lambda groupby, **kw: agg(groupby, "count", **kw)) setattr(cls, "size", lambda groupby, **kw: agg(groupby, "size", **kw)) setattr(cls, "mean", lambda groupby, **kw: agg(groupby, "mean", **kw)) setattr(cls, "var", lambda groupby, **kw: agg(groupby, "var", **kw)) setattr(cls, "std", lambda groupby, **kw: agg(groupby, "std", **kw)) setattr(cls, "all", lambda groupby, **kw: agg(groupby, "all", **kw)) setattr(cls, "any", lambda groupby, **kw: agg(groupby, "any", **kw)) setattr(cls, "skew", lambda groupby, **kw: agg(groupby, "skew", **kw)) setattr(cls, "kurt", lambda groupby, **kw: agg(groupby, "kurt", **kw)) setattr(cls, "kurtosis", lambda groupby, **kw: agg(groupby, "kurtosis", **kw)) setattr(cls, "sem", lambda groupby, **kw: agg(groupby, "sem", **kw)) setattr(cls, "nunique", lambda groupby, **kw: agg(groupby, "nunique", **kw)) setattr(cls, "median", lambda groupby, **kw: agg(groupby, "median", **kw)) setattr(cls, "apply", groupby_apply) setattr(cls, "transform", groupby_transform) setattr(cls, "cumcount", cumcount) setattr(cls, "cummin", cummin) setattr(cls, "cummax", cummax) setattr(cls, "cumprod", cumprod) setattr(cls, "cumsum", cumsum) setattr(cls, "head", head) setattr(cls, "sample", groupby_sample) setattr(cls, "ffill", ffill) setattr(cls, "bfill", bfill) setattr(cls, "backfill", bfill) setattr(cls, "fillna", fillna) for cls in DATAFRAME_GROUPBY_TYPE: setattr(cls, "__getitem__", df_groupby_getitem) _install() del _install