3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant 聚宽量化交易平台中,若需要一次性获取多只股票在多个历史报告期(季度或年度)的财务报表与财务指标数据,建议使用 get_history_fundamentals API。相比传统的 get_fundamentals,该函数能够轻松按时间跨度批量拉取历史财务数据,配合 Pandas 的 groupby 功能,可高效实现标的分组与截面计算。
get_history_fundamentals(
security,
fields,
watch_date=None,
stat_date=None,
count=1,
interval='1q',
stat_by_year=False
)
['000001.XSHE', '600000.XSHG']。balance(资产负债表)、cash_flow(现金流量表)、income(利润表)、indicator(财务指标表)等中的列。'2021q1' 或 '2020')。注意:watch_date 与 stat_date 必须二选一。'1q'(按季度)或 '1y'(按年度)。True,interval 必须为 '1y'。下面的示例展示了如何获取多只股票过去 5 个季度的货币资金、存款净增加额及营业总收入,并使用 Pandas 的 groupby 计算每只股票的均值。
from jqdata import *
# 1. 定义股票池与查询字段
securities = ['000001.XSHE', '600000.XSHG', '000002.XSHE']
fields_list = [
balance.cash_equivalents, # 货币资金
cash_flow.net_deposit_increase, # 客户存款和同业存放款项净增加额
income.total_operating_revenue # 营业总收入
]
# 2. 调用 API 获取过去 5 个季度的财务数据
df = get_history_fundamentals(
security=securities,
fields=fields_list,
watch_date=None,
stat_date='2023q1',
count=5,
interval='1q',
stat_by_year=False
)
# 查看返回的 DataFrame
print("原始财务数据:")
print(df.head())
# 3. 使用 Pandas groupby 按股票代码分组并计算均值
mean_df = df.groupby('code').mean()
print("\n按股票代码分组求均值结果:")
print(mean_df)
get_history_fundamentals 最多返回 5000 条数据。若获取的股票数量过多或历史期数过长,建议分批次调用。valuation)的查询。如需市值数据,请使用 get_valuation API。watch_date 参数指定观察日期,获取该日期当时已披露的财报,确保回测的真实性。