小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

pandas中apply與map的異同

 F2967527 2020-03-28

◆ ◆ ◆  ◆ 



前言

pandas作為數(shù)據(jù)處理與分析的利器,它的江湖地位非同小可。在我們數(shù)據(jù)處理與分析過程中,有時(shí)候需要對(duì)某一列的每一個(gè)值都進(jìn)行處理,這時(shí)候推薦大家使用apply或者map。


但是,二者又有啥區(qū)別呢?一起來通過幾個(gè)小例子學(xué)習(xí)一下吧。


APPLY

一、直接使用內(nèi)置函數(shù)或者numpy函數(shù)

# 數(shù)據(jù)展示>>> dfOut[1]: 姓名 年齡0 alan 191 black 152 cici 233 david 224 eric 18
# 計(jì)算字符長(zhǎng)度>>> df['姓名'].apply(len)Out[2]: 0 41 52 43 54 4Name: 姓名, dtype: int64
# 計(jì)算平方>>> df['年齡'].apply(np.square)Out[3]: 0 3611 2252 5293 4844 324Name: 年齡, dtype: int64

二、使用lambda匿名函數(shù)

# 根據(jù)年齡打標(biāo)簽:是否成年>>> df['年齡'].apply(lambda x: '已成年' if x>=18 else '未成年')Out[4]: 0    已成年1    未成年2    已成年3    已成年4    已成年Name: 年齡, dtype: object
# 修改姓名為首字母大寫>>> df['姓名'].apply(lambda x: x.title())Out[5]: 0 Alan1 Black2 Cici3 David4 EricName: 姓名, dtype: object
三、使用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ù)
# 計(jì)算字符長(zhǎng)度>>> df['姓名'].map(len)Out[7]: 0    41    52    43    54    4Name: 姓名, dtype: int64
# 計(jì)算平方>>> df['年齡'].map(np.square)Out[8]: 0 3611 2252 5293 4844 324Name: 年齡, 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 Alan1 Black2 Cici3 David4 EricName: 姓名, 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]: 01234Name: 姓名, dtype: object
通過上面的小例子講解,我們可以得出以下結(jié)論:
(1)map、apply在用于Series時(shí),對(duì)每一個(gè)值進(jìn)行處理,兩者并沒有什么區(qū)別。(是否受數(shù)據(jù)量影響可以自行驗(yàn)證)
(2)apply不僅可以用于Series,還可以用于DataFrame;而map只能用于Series。
(3)一般情況下,apply應(yīng)用更廣泛,尤其是自定義函數(shù)帶多個(gè)參數(shù)時(shí),建議使用apply。

記得點(diǎn)在看~祝大家一夜暴富,基金、股票一片紅~

在看”的永遠(yuǎn)18歲~

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多