pandas - 返回指数值列

时间:2015-11-30 13:44:39

标签: python pandas

从示例数据框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函数应用于整个列?

2 个答案:

答案 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)