用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。