pandas進階教程之Dataframe的apply方法
apply方法介紹
方法形式為 apply(func, axis=0, raw=False, result_type=None, agrs=(), **kwargs),沿Dataframe的軸應(yīng)用func函數(shù)。
傳遞給函數(shù)的對象是Series對象,當(dāng)axis=0時,其索引是Dataframe的索引;當(dāng)axis=1時,其索引是Dataframe的列。
默認情況下,result_type=None,最終返回的類型是從func函數(shù)的返回推斷出來的,否則它就取決于result_type參數(shù)。
參數(shù)解析:
- func:函數(shù),要應(yīng)用于每一列或每一行的函數(shù)。
- axis:默認為0,0對應(yīng)行索引,將func函數(shù)應(yīng)用于每一列;1對應(yīng)列,將函數(shù)應(yīng)用于每一行。
- raw:布爾值,默認為False,確定行或列是否作為Series或ndarray對象傳遞。
- False:將每一行或每一列作為一個Series對象傳遞給函數(shù);
- True:函數(shù)將接收ndarray對象。
- result_type:可選值有expand,reduce,broadcast,None,默認為None。
- 默認為None時,返回結(jié)果取決于func函數(shù)的返回值,類似列表的結(jié)果將返回這些結(jié)果組成的Series,如果返回Series,則會將Series擴展為列。
- expand:在axis=1時其作用,類似列表的結(jié)果將變成列。
- reduce:在axis=1時其作用,如果可以,返回一個Series,而不是擴展類似列表的結(jié)果。
- broadcast:在axis=1時其作用,結(jié)果將被廣播到Dataframe的原始形狀,原始行索引和列將會被保留。
- args:元組,除了數(shù)組和Series之外,要傳遞給func的位置參數(shù)。
- **kwargs:傳遞給func的附加關(guān)鍵字參數(shù)。
返回:
- func函數(shù)沿Dataframe的給定軸應(yīng)用的結(jié)果。
用例1
導(dǎo)入包
import pandas as pd import numpy as np
df = pd.DataFrame([[4, 9]]*3, columns=['A', 'B']) df
輸出:

使用numpy中的通用函數(shù)。
df.apply(np.sqrt) # 相當(dāng)于np.sqrt(df)
輸出:

用例2
在任一軸上應(yīng)用函數(shù), 返回由類似列表的結(jié)果組成的Series。
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
df.apply(lambda x :[1, 2], axis=1)
輸出:
0 [1, 2]
1 [1, 2]
2 [1, 2]
dtype: object
用例3
傳遞result_type=expand,會將類似列表的結(jié)果擴展到Dataframe的列。
df.apply(lambda x : [1, 2], axis=1, result_type='expand')
輸出:

在func函數(shù)內(nèi)部返回一個Series,和傳遞result_type=expand相似,Series的索引將作為擴展的列名。
df.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)
輸出:

傳遞result_type=broadcast,將會返回相同形狀的結(jié)果,無論是列表還是標(biāo)量,將沿軸進行廣播,列的名稱還是原始名稱。
df.apply(lambda x: [1, 2], axis=1, result_type='broadcast')
輸出:

總結(jié)
到此這篇關(guān)于pandas進階教程之Dataframe的apply方法的文章就介紹到這了,更多相關(guān)pandas Dataframe的apply方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中多線程thread與threading的實現(xiàn)方法
這篇文章主要介紹了Python中多線程thread與threading的實現(xiàn)方法,很重要的應(yīng)用,需要的朋友可以參考下2014-08-08
python requests 庫請求帶有文件參數(shù)的接口實例
今天小編就為大家分享一篇python requests 庫請求帶有文件參數(shù)的接口實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python使用PyNmap進行網(wǎng)絡(luò)掃描的詳細步驟
使用 PyNmap 進行網(wǎng)絡(luò)掃描是一個非常有效的方式,PyNmap 是 Nmap 工具的一個 Python 封裝,它允許你在 Python 腳本中使用 Nmap 的強大功能,本文介紹了如何使用 PyNmap 進行網(wǎng)絡(luò)掃描的詳細步驟,需要的朋友可以參考下2024-08-08

