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

如何将yahooquery的fund_holding_info输出转为持仓明细DataFrame

将yahooquery基金持仓数据转为结构化DataFrame的方法

yahooquery返回的fund_holding_info接口中,holdings字段本身就是结构化的列表格式,不需要先把整个返回结果转DataFrame再过滤,直接提取该字段转换即可。

单标的处理代码

import pandas as pd
from yahooquery import Ticker

# 初始化查询标的
fund = Ticker('HACAX')
# 直接提取持仓列表
holdings_list = fund.fund_holding_info['HACAX']['holdings']
# 转换为DataFrame
df_holdings = pd.DataFrame(holdings_list)

多标的批量处理代码

如果需要同时查询多只基金的持仓并合并为同一个DataFrame,可以用以下方式:

import pandas as pd
from yahooquery import Ticker

tickers = ['HACAX', 'HASGX']
all_holdings = []
funds = Ticker(tickers)

for ticker in tickers:
    # 提取单只基金的持仓列表
    single_holdings = funds.fund_holding_info[ticker]['holdings']
    # 给每条持仓记录标注所属基金代码,方便后续区分
    for item in single_holdings:
        item['fund_code'] = ticker
    all_holdings.extend(single_holdings)

# 合并所有持仓为结构化DataFrame
df_all_holdings = pd.DataFrame(all_holdings)

转换完成的DataFrame会自动包含持仓标的代码、持仓名称、持仓占比等对应字段,行列结构完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:39:03