用法:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs)
沿 DataFrame 的軸應用函數。
傳遞給函數的對象是 Series 對象,其索引是 DataFrame 的索引 (
axis=0
) 或 DataFrame 的列 (axis=1
)。默認情況下(result_type=None
),最終返回類型是從應用函數的返回類型推斷出來的。否則,它取決於result_type
參數。- func:函數
應用於每一列或每一行的函數。
- axis:{0 或 ‘index’,1 或 ‘columns’},默認 0
沿其應用函數的軸:
0 或‘index’:將函數應用於每一列。
1 或‘columns’:將函數應用於每一行。
- raw:布爾值,默認為 False
確定行或列是否作為 Series 或 ndarray 對象傳遞:
False
:將每一行或每一列作為係列傳遞給函數。True
:傳遞的函數將接收 ndarray 對象。如果您隻是應用 NumPy 縮減函數,這將獲得更好的性能。
- result_type:{‘expand’, ‘reduce’, ‘broadcast’, 無},默認無
這些僅在
axis=1
(列)時起作用:‘expand’:list-like 結果將轉換為列。
‘reduce’:如果可能,返回一個係列,而不是擴展 list-like 結果。這與‘expand’ 正好相反。
‘broadcast’:results 會廣播到 DataFrame 的原始形狀,保留原始索引和列。
默認行為(無)取決於應用函數的返回值:list-like 結果將作為一係列返回。但是,如果應用函數返回一個係列,這些將擴展為列。
- args:元組
除了數組/係列之外,要傳遞給
func
的位置參數。- **kwargs:
附加關鍵字參數作為關鍵字參數傳遞給
func
。
- Series或DataFrame
沿 DataFrame 的給定軸應用
func
的結果。
參數:
返回:
注意:
改變傳遞對象的函數可能會產生意外行為或錯誤,因此不受支持。有關更多詳細信息,請參閱使用用戶定義函數 (UDF) 方法進行變異。
例子:
>>> df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B']) >>> df A B 0 4 9 1 4 9 2 4 9
使用 numpy 通用函數(在這種情況下與
np.sqrt(df)
相同):>>> df.apply(np.sqrt) A B 0 2.0 3.0 1 2.0 3.0 2 2.0 3.0
在任一軸上使用歸約函數
>>> df.apply(np.sum, axis=0) A 12 B 27 dtype:int64
>>> df.apply(np.sum, axis=1) 0 13 1 13 2 13 dtype:int64
返回 list-like 將產生一個係列
>>> df.apply(lambda x:[1, 2], axis=1) 0 [1, 2] 1 [1, 2] 2 [1, 2] dtype:object
傳遞
result_type='expand'
會將 list-like 結果擴展到 Dataframe 的列>>> df.apply(lambda x:[1, 2], axis=1, result_type='expand') 0 1 0 1 2 1 1 2 2 1 2
在函數內返回 Series 類似於傳遞
result_type='expand'
。生成的列名稱將是係列索引。>>> df.apply(lambda x:pd.Series([1, 2], index=['foo', 'bar']), axis=1) foo bar 0 1 2 1 1 2 2 1 2
傳遞
result_type='broadcast'
將確保相同的形狀結果,無論是函數返回list-like還是標量,並沿軸廣播。生成的列名稱將是原始名稱。>>> df.apply(lambda x:[1, 2], axis=1, result_type='broadcast') A B 0 1 2 1 1 2 2 1 2
相關用法
- Python pandas.DataFrame.applymap用法及代碼示例
- Python pandas.DataFrame.append用法及代碼示例
- Python pandas.DataFrame.add_prefix用法及代碼示例
- Python pandas.DataFrame.assign用法及代碼示例
- Python pandas.DataFrame.add用法及代碼示例
- Python pandas.DataFrame.all用法及代碼示例
- Python pandas.DataFrame.at_time用法及代碼示例
- Python pandas.DataFrame.at用法及代碼示例
- Python pandas.DataFrame.agg用法及代碼示例
- Python pandas.DataFrame.asfreq用法及代碼示例
- Python pandas.DataFrame.add_suffix用法及代碼示例
- Python pandas.DataFrame.asof用法及代碼示例
- Python pandas.DataFrame.astype用法及代碼示例
- Python pandas.DataFrame.aggregate用法及代碼示例
- Python pandas.DataFrame.axes用法及代碼示例
- Python pandas.DataFrame.abs用法及代碼示例
- Python pandas.DataFrame.any用法及代碼示例
- Python pandas.DataFrame.align用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.apply。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。