◆ ◆ ◆ ◆ ◆ pandas作為數(shù)據(jù)處理與分析的利器,它的江湖地位非同小可。在我們數(shù)據(jù)處理與分析過程中,有時(shí)候需要對(duì)某一列的每一個(gè)值都進(jìn)行處理,這時(shí)候推薦大家使用apply或者map。 一、直接使用內(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
# 計(jì)算字符長(zhǎng)度 >>> df['姓名'].apply(len) Out[2]: 0 4 1 5 2 4 3 5 4 4 Name: 姓名, dtype: int64
# 計(jì)算平方 >>> df['年齡'].apply(np.square) Out[3]: 0 361 1 225 2 529 3 484 4 324 Name: 年齡, dtype: int64 二、使用lambda匿名函數(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
# 根據(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ù)
四、使用dict作為map參數(shù) # apply沒有這種功能! >>> df['姓名'].map({'alan':'女','black':'男','cici':'女','david':'男','eric':'男'}) Out[12]: 0 女 1 男 2 女 3 男 4 男 Name: 姓名, dtype: object 記得點(diǎn)在看~祝大家一夜暴富,基金、股票一片紅~ |
|