如何在Pandas中结合多列对应值应用自定义公式?
解决方案
针对你的需求,有两种常用实现方式,推荐优先使用第二种向量化运算(效率更高):
方法一:按行使用apply
通过指定axis=1让apply遍历每一行,在lambda表达式中同时获取当前行的mean和games列值,结合标量计算:
alpha = 1.2 beta = 0.5 df['mean'] = df.apply(lambda row: alpha + row['mean']/row['games'] + alpha + beta, axis=1)
方法二:向量化列运算(推荐)
Pandas支持直接对整列做元素级运算,无需遍历行,这种方式在数据量较大时性能远优于apply:
alpha = 1.2 beta = 0.5 # 公式可简化为2*alpha + beta + mean/games,直接基于列运算 df['mean'] = 2*alpha + beta + df['mean']/df['games']
两种方式最终都会得到你需要的结果:对每行计算alpha + mean值/games值 + alpha + beta,并将结果更新到mean列中。
内容的提问来源于stack exchange,提问作者8-Bit Borges
相关产品推荐
相关产品推荐

