python中apply函數詳情
函數原型:
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
- 1.該函數最有用的是第一個參數,這個參數是函數,相當於C/C++的函數指針。
- 2.這個函數需要自己實現,函數的傳入參數根據axis來定,比如axis = 1,就會把一行數據作為Series的數據
- 結構傳入給自己實現的函數中,我們在函數中實現對
Series
不同屬性之間的計算,返回一個結果,則apply函數 - 會自動遍歷每一行
DataFrame
的數據,最後將所有結果組合成一個Series
數據結構 - 並返回。
- 3.apply函數常與
groupby
函數一起使用,如下圖所示:
- 4.舉栗子
對指定列進行操作:
data=np.arange(0,16).reshape(4,4) data=pd.DataFrame(data,columns=['0','1','2','3']) def f(x): return x-1 print(data) print(data.ix[:,['1','2']].apply(f)) 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 1 2 0 0 1 1 4 5 2 8 9 3 12 13
對行操作:
data=np.arange(0,16).reshape(4,4) data=pd.DataFrame(data,columns=['0','1','2','3']) def f(x): return x-1 print(data) print(data.ix[[0,1],:].apply(f)) 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 0 1 2 3 0 -1 0 1 2 1 3 4 5 6
整體對列操作:
data=np.arange(0,16).reshape(4,4) data=pd.DataFrame(data,columns=['0','1','2','3']) def f(x): return x.max() print(data) print(data.apply(f)) 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 0 12 1 13 2 14 3 15 dtype: int64
整體對行操作:
data=np.arange(0,16).reshape(4,4) data=pd.DataFrame(data,columns=['0','1','2','3']) def f(x): return x.max() print(data) print(data.apply(f,axis=1)) 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 0 3 1 7 2 11 3 15 dtype: int64
到此這篇關於python中apply函數詳情的文章就介紹到這瞭,更多相關python中apply函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python Pandas基礎操作詳解
- python3中apply函數和lambda函數的使用詳解
- pandas對齊運算的實現示例
- Python groupby函數圖文詳解
- python 利用panda 實現列聯表(交叉表)