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

yfinance下载数据报AttributeError: 'float' object has no attribute 'replace'的原因及解法

错误产生原因
  • yf.download()的第一个入参要求传入股票代码字符串/股票代码组成的可迭代对象,你代码中将ticker.info接口返回的priceToBook(市净率,是float浮点型数值)直接传入了第一个参数位置
  • yfinance内部处理第一个参数时,会先判断如果不是列表/集合/元组类型,就默认是字符串格式的股票代码,会调用.replace(',', ' ')方法处理逗号分隔的多代码场景,浮点型没有replace方法,因此抛出AttributeError
解决方法

如果你本身的需求是下载微软(MSFT)的历史行情数据,有两种正确写法:

写法1:直接传入股票代码到yf.download

import yfinance as yf

# 第一个参数填股票代码字符串
df = yf.download("MSFT", start="2020-1-1", end="2021-1-1")
print(df)

写法2:用已经创建的Ticker对象的history方法下载

import yfinance as yf

ticker = yf.Ticker("MSFT")
# 如果需要用到.info的其他字段可以单独提取
# price_to_book = ticker.info["priceToBook"]
df = ticker.history(start="2020-1-1", end="2021-1-1")
print(df)

如果你是想要先筛选符合市净率条件的股票,再下载对应行情,需要先拿到符合条件的股票代码列表,再把代码列表传入yf.download的第一个参数即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:45:08