如何在Pandas列中应用含多参数的自定义函数
解决方案
首先注意:Python中幂运算的运算符是**,而不是^(^是按位异或),你的自定义函数需要先修正,否则会得到错误结果:
import math def f(k,a,x): return (1/(1+math.exp(-k*x)))**a
接下来提供两种将函数应用到df['x']列的方法:
方法一:使用apply逐行处理
通过lambda函数固定参数k=1、a=2,对x列的每个值调用函数:
df['result'] = df['x'].apply(lambda x_val: f(1, 2, x_val))
方法二:向量化运算(推荐,效率更高)
Pandas和Numpy对向量化运算支持更好,直接用numpy.exp实现批量计算,避免逐行循环:
import numpy as np df['result'] = (1 / (1 + np.exp(-1 * df['x']))) ** 2
内容的提问来源于stack exchange,提问作者quant
相关产品推荐
相关产品推荐

