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

Python迭代拉取多公司股票数据单行返回与缺省值处理问题

股票数据拉取问题解决方案

问题原因说明

  • 仅返回1条数据:原循环每次执行都会覆盖df变量,之前拉取的结果没有保存,最终仅保留最后一次接口调用的返回值。
  • 程序报错中断:接口没有对应日期数据时会抛出ValueError,未做异常捕获会直接终止程序。

实现代码

import pandas as pd
import pandas_datareader.data as pdr

# 配置参数
sym_list = ['20MICRONS.NS', '21STCENMGM.NS', '3IINFOTECH.NS', '3MINDIA.NS', '3PLAND.NS']
target_start = "2021-6-2"
target_end = "2021-6-3"
res_buffer = []

for sym in sym_list:
    try:
        # 拉取指定日期行情
        single_data = pdr.get_data_yahoo(sym, start=target_start, end=target_end)
        # 追加股票代码标识
        single_data['symbol'] = sym
        res_buffer.append(single_data)
    except ValueError as err:
        # 匹配无数据异常,填充空行
        if "No data found, symbol may be delisted" in str(err):
            empty_data = pd.DataFrame(
                data = [[pd.NA]*6 + [sym]],
                columns = ["High", "Low", "Open", "Close", "Volume", "Adj Close", "symbol"],
                index = [pd.to_datetime(target_start)]
            )
            res_buffer.append(empty_data)
        # 非预期异常继续抛出
        else:
            raise err

# 合并所有行得到最终结果
final_df = pd.concat(res_buffer, axis=0)

效果说明

执行后final_df会包含5条对应股票的行情数据,无数据的标的对应字段自动填充空值,程序不会中断运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 19:27:07