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

如何在DataFrame逐行应用函数时忽略异常并继续执行?

处理DataFrame apply时的异常问题

直接在lambda里处理异常不太方便,你可以单独写一个带异常捕获的函数,替代原来的lambda:

  • 先定义一个封装了异常处理的函数,调用你的iv函数时捕获异常,出错时返回NaN(也可以换成你需要的默认值):
import numpy as np

def calculate_iv(row):
    try:
        return iv(row['Close_x'], row['Close_y'], row['Strike'], row['TTE_x'], 0, flag='c')
    except Exception:
        # 遇到任何异常都返回NaN,也可根据需求指定其他默认值
        return np.nan
  • 然后用这个函数替代原来的lambda执行apply:
df['IV'] = df.apply(calculate_iv, axis=1)

如果需要更精准的异常控制,还可以把Exception换成具体的异常类型(比如ValueError),避免误吞其他严重错误。

你之前用if else效果不好,是因为没法提前预判iv函数会抛出哪些异常,try-except是更通用的兜底方案,能覆盖所有未预见的错误场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:05:48