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

如何将pyfinviz筛选结果转为Pandas DataFrame并提取Tickers列?

解决方法

pyfinviz 返回的 screener.data_frames 是对应每一页数据的 Pandas DataFrame 列表,完全支持后续的 DataFrame 处理操作。要生成仅含'Tickers'列的DataFrame,按以下步骤修改代码:

完整实现代码

from pyfinviz.screener import Screener
import pandas as pd

# 初始化筛选条件
options = [
    Screener.IndustryOption.STOCKS_ONLY_EX_FUNDS, 
    Screener.AnalystRecomOption.STRONG_BUY_1
]
screener = Screener(
    filter_options=options, 
    view_option=Screener.ViewOption.VALUATION,
    pages=[x for x in range(1, 4)]
)

# 合并多页的DataFrame为一个整体
combined_df = pd.concat(screener.data_frames, ignore_index=True)

# 提取仅包含'Tickers'列的DataFrame
tickers_only_df = combined_df[['Tickers']]

# 查看结果
print(tickers_only_df)

关键说明

  • pd.concat():把多页返回的DataFrame列表合并成一个完整的DataFrame,ignore_index=True用来重置行索引,避免重复索引问题。
  • 直接通过列名['Tickers']提取目标列,注意列名要和pyfinviz返回的列名完全匹配(确认返回数据里的列名是'Tickers'而非其他拼写)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:22:22