从示例数据框df
开始,如:
a,b
0,0.71
1,0.75
2,0.80
3,0.90
我会添加一个列为b
的指数值的新列。到目前为止我试过了:
df['exp'] = math.exp(df['b'])
但是此方法返回:
"cannot convert the series to {0}".format(str(converter)"
TypeError: cannot convert the series to <type 'float'>
有没有办法将math
函数应用于整个列?
答案 0 :(得分:14)
好math.exp
无法理解Series
数据类型,请使用numpy np.exp
,它会进行矢量化,因此可以对整个列进行操作:
In [24]:
df['exp'] = np.exp(df['b'])
df
Out[24]:
a b exp
0 0 0.71 2.033991
1 1 0.75 2.117000
2 2 0.80 2.225541
3 3 0.90 2.459603
答案 1 :(得分:0)
尝试使用:
df['exp'] = df.b.apply(np.exp)