
yfinance 使用教程三步取到 Yahoo Finance 行情数据常见故障快速修复【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance写 Python 分析股票和基金时yfinance 帮你直接从 Yahoo Finance 的公开接口免费拉取行情数据历史价格、财报、基金持仓几行代码就能拿到一张标准的 pandas 表格。你只要会 pip 装包、会跑 Python就能照着这篇文章装好它、第一次取数成功并在报错时花几分钟定位问题。三步装好一行验证版本安装pip install yfinance修复功能依赖价格修复要用到 scipy 和 scikit-learn提前装上pip install yfinance[repair]验证安装是否成功python -c import yfinance as yf; print(yf.__version__)你应该看到1.6.0。看到版本号就装好了看到ModuleNotFoundError说明包没装进当前环境换一个解释器重跑第 1 步即可。⚠️ 机器上同时装了 Python 2 和 3 时用pip3代替pip否则装错环境。第一次取数就成功单只股票用yf.Ticker(MSFT)创建对象后调history()默认返回最近 1 个月日线import yfinance as yf hist yf.Ticker(MSFT).history(period3mo) # 取 3 个月日线 print(hist.tail()) # 应看到含 Open/Close/Adj Close 的表格一次拿多只用批量下载multi_level_indexFalse把旧版扁平列结构保留下来方便按列取数data yf.download([MSFT, AAPL], period1mo, group_byticker, multi_level_indexFalse)跑完你应看到按日期索引的表格每只股票一组 Open、High、Low、Close 列。更多写法直接看仓库里的 官方示例代码13 个脚本对应 13 个场景。出问题先查这张表现象可能原因解法history()返回空表报YFPricesMissingError可能已退市代码写错或股票已退市换yf.Ticker(代码)再取info无marketCap字段说明代码无效日期写反也会为空注意end不含当天YFRateLimitErrorToo Many Requests短时间请求太频繁被 Yahoo 限流每只代码之间time.sleep(2)隔 10 分钟再重试减少重复请求repairTrue报缺少 scipy / scikit-learn修复依赖是可选包没装pip install yfinance[repair]后重跑Repaired?列会标出修复过的行分钟级数据取不到 60 天以前Yahoo 只开放最近 60 天分钟线用interval1h或1d代替1m请求超时 / 反复重连当前网络访问不到 Yahoo 接口设置代理yf.config.network.proxy http://127.0.0.1:7890后重跑海外市场的价格偶有错档漏了分红调整、币种单位差 100 倍加repairTrue可以自动修复效果对比见官方 价格修复说明。修复后币种要看history_metadata[currency]不要信info里的币种。做完后你应该看到Repaired?列出现True标记且相邻交易日价格不再跳变。四个动作提升稳定性批量下载加并发yf.download默认多线程group_byticker按股票分组10 只代码一次取完。长区间用period优先用period1y比手算start/end更省事也少踩日期边界坑。缓存目录指到共享盘yf.set_tz_cache_location(custom/cache/location)减少重复请求默认路径在 缓存配置说明 里按系统分列。调试开日志yf.config.debug.logging True出问题时能看到每次请求的 URL 和响应定位更快。版本变了不慌自查加一层保护升级前先自查版本import yfinance as yf print(yf.__version__) # 对照 CHANGELOG.rst 看该版本改了什么接口变更的准确说明都在仓库根目录的 CHANGELOG.rst 里。把取数逻辑包成函数升级后只改函数内部业务代码不动def fetch(ticker, period1mo): try: return yf.Ticker(ticker).history(periodperiod) except Exception as e: print(e) # 先打印错误再决定是否兼容旧写法 return None做完后你应该能在升级前后分别跑print(yf.__version__)并对照 changelog 确认自己用到的参数还在。收尾速查我想……直接做确认装好跑验证命令应看到1.6.0取单只股票yf.Ticker(代码).history(period1mo)批量取数yf.download([...], group_byticker, multi_level_indexFalse)数据异常repairTrue看Repaired?列查接口变更打开 CHANGELOG.rst看现成写法官方示例代码完整 API 参考官方文档还卡住按顺序求助查 缓存与日志配置 打开调试日志 → 对照 CHANGELOG.rst 确认版本差异 → 阅读 开发指南 了解分支结构后向社区提交问题。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考