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

微信扫码关注公众号