【Python基础】pandas中apply与map的异同
◆?◆?◆ ?◆?◆
前言
pandas作為數(shù)據(jù)處理與分析的利器,它的江湖地位非同小可。在我們數(shù)據(jù)處理與分析過程中,有時候需要對某一列的每一個值都進(jìn)行處理,這時候推薦大家使用apply或者map。
但是,二者又有啥區(qū)別呢?一起來通過幾個小例子學(xué)習(xí)一下吧。
APPLY
一、直接使用內(nèi)置函數(shù)或者numpy函數(shù)
# 數(shù)據(jù)展示 >>> df Out[1]:姓名 年齡 0 alan 19 1 black 15 2 cici 23 3 david 22 4 eric 18#?計算字符長度 >>> df['姓名'].apply(len) Out[2]:? 0 4 1 5 2 4 3 5 4 4 Name: 姓名, dtype: int64# 計算平方 >>> df['年齡'].apply(np.square) Out[3]:? 0 361 1 225 2 529 3 484 4 324 Name: 年齡, dtype: int64二、使用lambda匿名函數(shù)
三、使用def自定義函數(shù)
# 自定義函數(shù) def fn(x):if x >=18:return '成年人'else:return '未成年'# 自定義函數(shù)作為apply參數(shù)?????? >>> df['年齡'].apply(fn) Out[6]:? 0 成年人 1 未成年 2 成年人 3 成年人 4 成年人 Name: 年齡, dtype: object需要注意的是,apply不僅可以用于Series,還可用于DataFrame,具體可以根據(jù)自己的業(yè)務(wù)需要,及數(shù)據(jù)處理規(guī)范來使用即可。
MAP
一、直接使用內(nèi)置函數(shù)或者numpy函數(shù)
# 計算字符長度 >>> df['姓名'].map(len) Out[7]:? 0 4 1 5 2 4 3 5 4 4 Name: 姓名, dtype: int64# 計算平方 >>> df['年齡'].map(np.square) Out[8]:? 0 361 1 225 2 529 3 484 4 324 Name: 年齡, dtype: int64二、使用lambda匿名函數(shù)
# 根據(jù)年齡打標(biāo)簽:是否成年 >>>?df['年齡'].map(lambda?x:?'已成年'?if?x>=18?else?'未成年') Out[9]:? 0 已成年 1 未成年 2 已成年 3 已成年 4 已成年 Name: 年齡, dtype: object# 修改姓名為首字母大寫 >>>?df['姓名'].map(lambda?x:?x.title()) Out[10]:? 0 Alan 1 Black 2 Cici 3 David 4 Eric Name: 姓名, dtype: object三、使用def自定義函數(shù)
#?自定義函數(shù)作為map參數(shù)?????? >>> df['年齡'].map(fn) Out[11]:? 0 成年人 1 未成年 2 成年人 3 成年人 4 成年人 Name: 年齡, dtype: object四、使用dict作為map參數(shù)
# apply沒有這種功能! >>> df['姓名'].map({'alan':'女','black':'男','cici':'女','david':'男','eric':'男'}) Out[12]:? 0 女 1 男 2 女 3 男 4 男 Name: 姓名, dtype: object通過上面的小例子講解,我們可以得出以下結(jié)論:
(1)map、apply在用于Series時,對每一個值進(jìn)行處理,兩者并沒有什么區(qū)別。(是否受數(shù)據(jù)量影響可以自行驗(yàn)證)
(2)apply不僅可以用于Series,還可以用于DataFrame;而map只能用于Series。
(3)一般情況下,apply應(yīng)用更廣泛,尤其是自定義函數(shù)帶多個參數(shù)時,建議使用apply。
記得點(diǎn)在看~祝大家一夜暴富,基金、股票一片紅~
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯總結(jié)
以上是生活随笔為你收集整理的【Python基础】pandas中apply与map的异同的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习基础】机器学习训练中常见的问题
- 下一篇: 【数据分析】Databricks入门:分