如何用Python的yfinance库获取10年(偏好季度)财报数据?
用yfinance获取长期季度/年度财务报表的解决方案
首先,你代码报错的原因是**balancesheet是Ticker对象的属性而非方法**,不能加括号传参数,正确写法是gs.balancesheet(年度数据)或gs.quarterly_balancesheet(季度数据),但这些默认仅返回最近4年的数据。
要获取6年甚至更久的季度/年度财报,需要使用yfinance提供的get_balancesheet()、get_income_stmt()、get_cashflow()方法,这些方法支持自定义数据范围:
步骤1:确保yfinance是最新版本
先升级到最新版,避免旧版本缺少相关方法:
pip install --upgrade yfinance
步骤2:获取指定年限的季度财报
以下代码可获取6年(24个季度)的三类报表:
import yfinance as yf # 初始化目标公司Ticker gs = yf.Ticker('GS') # 获取季度资产负债表(24个季度=6年) quarterly_balance_sheet = gs.get_balancesheet(period='quarterly', limit=24) # 获取季度利润表 quarterly_income_statement = gs.get_income_stmt(period='quarterly', limit=24) # 获取季度现金流量表 quarterly_cash_flow = gs.get_cashflow(period='quarterly', limit=24) # 打印前5行验证 print(quarterly_balance_sheet.head())
步骤3:获取年度财报(可选)
如果需要年度数据,去掉period='quarterly'参数即可,比如获取10年的年度报表:
# 获取10年年度资产负债表 annual_balance_sheet = gs.get_balancesheet(period='annual', limit=10)
注意事项
limit参数指定要获取的报表数量:季度报表每年4个,6年就设为24;年度报表直接设为对应年限即可。- 若设置
period='max',会获取Yahoo Finance上存储的所有可用历史数据,但部分公司可能没有10年这么久的公开财报,具体数据量取决于数据源。
内容的提问来源于stack exchange,提问作者jacopo salmistrari
相关产品推荐
相关产品推荐

