map函数简单又很有作用,它根据提供的函数对指定序列做映射。因此可以解决Excel表将指定列值运用到函数的问题。
它的语法是:map(function, iterable, ...),function — 函数,iterable — 单列或多列。
注:在Python3.中,直接用map(function, iterable, ...)会返回到迭代器,如要转换成列表的形式,采用list(map(function, iterable, ...))即可。
下面以求解二次方程的根为例说明:
def func(a,b,c):
d=b**2-4*a*c
if a==0:
x1=x2=(-c/b)
return x1
else:
if d<0:
return '无实解'
else:
if d==0:
x1=x2=-b*b/(2*a)
return x1
else:
x1 = (-b + math.sqrt(d))/(2*a)
x2 = (-b - math.sqrt(d))/(2*a)
return min(x1,x2)
df['Func_value'] = list(map(func,df['a'],df['b'],df['c']))
df表中分别有a、b、c三列,func函数有三个参数,传入指定的三参数即可。