如何用yahoo_fin获取AAPL的TTM利润表数据?
解决获取AAPL利润表TTM数据的问题
问题原因
yahoo_fin的get_income_statement方法默认返回年度财务数据,若要获取TTM(滚动十二个月)数据,需要调整参数或换用工具实现。
方法1:用yahoo_fin获取季度数据后计算TTM
yahoo_fin本身没有直接输出TTM的接口,但可以先获取季度数据,再手动计算最近4个季度的总和得到TTM结果:
from yahoo_fin import stock_info as si import pandas as pd pd.set_option('display.max_columns', None) # 获取AAPL的季度利润表 quarterly_income = si.get_income_statement("aapl", yearly=False) # 计算TTM:取最近4个季度的数值求和 ttm_income = quarterly_income.iloc[:, :4].sum(axis=1) ttm_income = pd.DataFrame(ttm_income, columns=["TTM"]) print(ttm_income)
说明
yearly=False:指定接口返回季度数据而非年度iloc[:, :4]:选取表格中最近的4个季度列sum(axis=1):按行(即每个财务指标)求和,得到滚动12个月的TTM值
方法2:用yfinance直接获取TTM利润表
yfinance库支持直接获取TTM格式的财务数据,实现更简便:
import yfinance as yf import pandas as pd pd.set_option('display.max_columns', None) # 初始化AAPL的Ticker对象 aapl = yf.Ticker("AAPL") # 方式1:从完整利润表中提取TTM列 ttm_income = aapl.income_stmt.T["TTM"].T # 方式2:直接指定freq参数获取TTM数据 # ttm_income = aapl.get_income_stmt(freq="ttm") print(ttm_income)
说明
aapl.income_stmt默认包含年度和TTM数据,通过转置后提取"TTM"列即可get_income_stmt(freq="ttm")是更直接的方式,仅返回TTM格式的利润表
内容的提问来源于stack exchange,提问作者Economist Learning Python
相关产品推荐
相关产品推荐

