You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas如何对同一DataFrame的两列执行运算并生成新列

报错原因

  • 参数定义错误:使用df.apply(..., axis=1)时,lambda函数每次仅接收1个参数(代表当前行的Series对象),你声明了x, y两个入参,导致缺少参数报错。
  • 运算逻辑问题:你写的x-y/y按照运算优先级会先计算y/y,等价于x-1,不符合ROI(投资回报率)的常规计算逻辑,正确公式应为(Faturamento - Custo) / Custo,如果确实需要你写的原始逻辑可以自行调整公式部分。

正确实现

方案1:推荐使用向量化运算(性能远高于apply)

直接对DataFrame的列做批量运算即可,代码更简洁运行更快:

df['Roi'] = (df['Faturamento'] - df['Custo']) / df['Custo']

如果确实要使用你原始的x - y/y逻辑,代码改为:

df['Roi'] = df['Faturamento'] - df['Custo']/df['Custo']

方案2:apply的正确写法

如果一定要用apply实现,lambda仅需接收1个行参数即可:

df['Roi'] = df.apply(lambda row: (row['Faturamento'] - row['Custo']) / row['Custo'], axis=1)

内容的提问来源于stack exchange,提问作者Carol Vieira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:36:00