pandas中利用apply來對數(shù)據(jù)進行處理十分常見,也十分的方便,原因在于apply方法可以調(diào)用函數(shù): 應(yīng)用于dataframe的各個列 這里借用了一位老師的圖:(充分說明了group到apply的過程) In [45]: df = pd.DataFrame({'a':[1,2,1,2],'b':[3,4,5,6]})
group可以直接使用默認函數(shù)方法,也可以和apply的結(jié)合使用: In [49]: df.groupby('a').sum()
In [52]: df.groupby('a').apply(sum)
當然也可以使用我們自己編寫的函數(shù): dx.sum() #在apply中函數(shù)不需要加(),但是在其他地方調(diào)用函數(shù)需要加上(),不要搞混了 In [60]: df.groupby('a').apply(reduce)
當調(diào)用函數(shù),且需要加入其它參數(shù)時: In [73]: df.apply(reduce,axis=1,args=(2,))
多個參數(shù): In [75]: df.apply(reduce,axis=1,args=(2,1,))
應(yīng)用函數(shù)添加某列時: dx['c'] = dx['a']*k + dx['b'] In [77]: df.apply(reduce,axis=1,args=(2,))
一個小練習(xí):
這里我們有兩列數(shù)據(jù),完成通過Pclass的值,修改Survived為對應(yīng)值(可以自行添加參數(shù))
首先編寫一個函數(shù),再使用apply來調(diào)用 In [34]: data.apply(reduce,axis=1)
|