用法:
GroupBy.apply(func, *args, **kwargs)
应用函数
func
group-wise 并将结果组合在一起。传递给
apply
的函数必须将数据帧作为其第一个参数并返回数据帧、系列或标量。然后apply
将负责将结果重新组合到一个数据帧或系列中。apply
因此是一种高度灵活的分组方法。虽然
apply
是一种非常灵活的方法,但它的缺点是使用它可能比使用更具体的方法(如agg
或transform
)慢很多。 Pandas 提供了多种方法,这些方法比使用apply
用于特定目的要快得多,因此在达到apply
之前尝试使用它们。- func:可调用的
将数据帧作为其第一个参数并返回数据帧、序列或标量的可调用对象。此外,可调用对象可以采用位置和关键字参数。
- args, kwargs:元组和字典
要传递给
func
的可选位置和关键字参数。
- applied:Series或DataFrame
参数:
返回:
注意:
改变传递对象的函数可能会产生意外行为或错误,因此不受支持。有关更多详细信息,请参阅使用用户定义函数 (UDF) 方法进行变异。
例子:
>>> df = pd.DataFrame({'A':'a a b'.split(), ... 'B':[1,2,3], ... 'C':[4,6,5]}) >>> g = df.groupby('A')
请注意,
g
有两个组,a
和b
。通过各种方式调用apply
,可以得到不同的分组结果:示例 1:下面传递给
apply
的函数将 DataFrame 作为其参数并返回一个 DataFrame。apply
将每个组的结果组合到一个新的 DataFrame 中:>>> g[['B', 'C']].apply(lambda x:x / x.sum()) B C 0 0.333333 0.4 1 0.666667 0.6 2 1.000000 1.0
示例 2:传递给
apply
的函数将 DataFrame 作为其参数并返回一个 Series。apply
将每个组的结果组合到一个新的 DataFrame 中。>>> g[['B', 'C']].apply(lambda x:x.astype(float).max() - x.min()) B C A a 1.0 2.0 b 0.0 0.0
示例 3:传递给
apply
的函数将 DataFrame 作为其参数并返回一个标量。apply
将每个组的结果组合成一个系列,包括根据需要设置索引:>>> g.apply(lambda x:x.C.max() - x.B.min()) A a 5 b 2 dtype:int64
相关用法
- Python pandas.core.groupby.GroupBy.nth用法及代码示例
- Python pandas.core.groupby.GroupBy.cumcount用法及代码示例
- Python pandas.core.groupby.GroupBy.mean用法及代码示例
- Python pandas.core.groupby.GroupBy.tail用法及代码示例
- Python pandas.core.groupby.GroupBy.rank用法及代码示例
- Python pandas.core.groupby.GroupBy.pipe用法及代码示例
- Python pandas.core.groupby.GroupBy.ngroup用法及代码示例
- Python pandas.core.groupby.GroupBy.head用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.unique用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.hist用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.nlargest用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.resample用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.quantile用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.cumcount用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.sample用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.fillna用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.filter用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.aggregate用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.nunique用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.describe用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.core.groupby.GroupBy.apply。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。