python数据分析之apply函数

 

背景:apply函数是pandas里面所有函数中自由度最高的函数。

该函数如下:

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。

这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据 结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数 会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。

 

import numpy as np

import pandas as pd

f = lambda x: x.max() - x.min()

df = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['utah', 'ohio', 'texas', 'oregon'])

print(df)

t1 = df.apply(f)

print(t1)

t2 = df.apply(f, axis=1)

print(t2)

 

 

import numpy as np

import pandas as pd

df = pd.DataFrame({'a': np.random.rand(6),

'b': ['af','bf']*3,

'c': np.random.rand(6) })

def my_test(a,b):

return a + b

print(df)

df['value'] = df.apply(lambda row: my_test(row['a'],row['c']),axis=1)#方法一

print(df)

df['value2'] = df['a'] + df['c']#方法二

print(df)

 

关注公众号「水沐教育科技」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

公众号二维码
微信扫码关注公众号

微信交流群 关注微信公众号,加入官方交流群。内含一款搜索神器,免费下载全网书籍和视频。