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

如何将百分比字符串转换为浮点小数?Python期权计算代码报错求解

解决方法

报错核心原因是yahoo_fin返回的隐含波动率字段为带百分号的字符串格式(例如"25.3%"),无法直接参与数值运算,只需要对该列做字符串清洗+类型转换即可。

具体修改步骤

找到代码中提取sigma的行:

sigma = chain["calls"]["Implied Volatility"] #the Implied Volatility

替换为以下代码:

# 1. 去除字符串末尾的%符号 2. 转换为浮点格式 3. 除以100转为小数比例
sigma = chain["calls"]["Implied Volatility"].str.replace('%', '', regex=False).astype(float, errors='coerce') / 100

参数说明

  • str.replace('%', '', regex=False):将所有隐含波动率字符串中的百分号直接删除,避免字符干扰类型转换
  • astype(float, errors='coerce'):将处理后的字符串批量转换为浮点类型,遇到无效值时自动转为NaN而不直接抛出中断错误
  • /100:将百分比数值转为小数比例(例如25.3%转为0.253),符合Black-Scholes公式的输入要求

可选优化

如果后续运算中不需要保留无效数据行,可以额外加一步过滤:

# 过滤掉隐含波动率为空的行
chain["calls"] = chain["calls"][sigma.notna()]
# 重新提取sigma
sigma = sigma.dropna()

内容的提问来源于stack exchange,提问作者2nd half Sports

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:07