python中的apply()\applymap()\map()函数!
python 中apply()\applymap()\map()用来应用函数,括号里可以是自定义函数、直接函数式、或者匿名函数(lambda)。
import pandas as pd
import numpy as np
from pandasimport DataFrame
from pandas import Series
#创建测试案例
df1= DataFrame({ "column1":[-1,2,3], "column2":[3,-5,7], })
df1
结果:
- 若要对数据框(DataFrame)的数据进行按行或按列操作时用apply()
df1.apply(lambda x :x.max()-x.min(),axis=1)
#axis=1,表示按行对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按行找最大值和最小值计算,每一行输出一个值
结果:df1.apply(lambda x :x.max()-x.min(),axis=0)
#默认参数axis=0,表示按列对数据进行操作
#从下面的结果可以看出,我们使用了apply函数之后,系统自动按列找最大值和最小值计算,每一列输出一个值
结果:- 当我们要对数据框(DataFrame)的每一个数据进行操作时用applymap(),返回结果是DataFrame格式.
df1.applymap(lambda x : 1 if x>0 else 0)
#从下面的结果可以看出,我们使用了applymap函数之后,
#系统自动对每一个数据进行判断,判断之后输出结果
结果:- 当我们要对Series的每一个数据进行操作时用map()
df1.column1.map(lambda x : 1 if x>0 else 0)
#df1.sales1就是一个Series
结果:总结,要对数据进行应用函数时,先看数据结构是DataFrame还是Series,Seriesj结构直接用map(),DataFrame结构的话再看是要按行还是按列进行操作来选择对应的函数即可。