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

遍历股票代码列表执行日线重采样出错,求技术排查

问题分析与解决:遍历股票代码列表时的文件名生成错误

我一眼就看出问题出在哪了——你把整个DataFrame直接塞进了SymbolList里,导致遍历的时候拿到的不是单个股票代码,而是整个表格对象,转成字符串自然就会把所有内容都拼进文件名里,系统当然找不到对应的文件啦!

错误根源拆解

你这段代码里的SymbolList.append(read)是核心问题:

read = pd.read_csv('/Users/steve/Documents/MATLAB/all_symbols.csv', header=None, delimiter=',')
SymbolList.append(read)

这里的read是一个完整的pandas DataFrame对象,你把它整个添加到列表后,遍历SymbolList时,x就是这个DataFrame,用str(ticker)转换后就会输出整个表格的文本内容,这才生成了那个乱七八糟的文件名。

修正方案

我们需要把DataFrame里的每一个股票代码单独提取出来,变成一个字符串列表,而不是把整个DataFrame塞进去。修改方式很简单:

  1. 替换列表初始化的代码,直接把DataFrame的第一列转成列表(因为你的csv没有表头,第一列就是股票代码):
SymbolList = read[0].tolist()
  1. 确保遍历的时候拿到的是单个字符串,不需要额外转成str(不过保险起见可以加个str())。

修正后的完整代码

import pandas as pd
col_names = ['Date','Time','Open','High','Low','Close','Volume','Split Factor','Earnings','Dividends']

# 读取股票代码列表,直接转成字符串列表
read = pd.read_csv('/Users/steve/Documents/MATLAB/all_symbols.csv', header=None, delimiter=',')
SymbolList = read[0].tolist()

for ticker in SymbolList:
    # 确保ticker是字符串类型,避免意外
    ticker_str = str(ticker)
    file_path = f'/Users/steve/Documents/MATLAB/SNP500 STOCKS 1 MIN DATA/table_{ticker_str}.csv'
    try:
        data = pd.read_csv(file_path, header=None, names=col_names, parse_dates=[['Date', 'Time']])
        data['Date_Time'] = pd.to_datetime(data.Date_Time.astype(str),format='%Y%m%d %H%M')
        data = data.set_index('Date_Time')
        data_NormalTradingHours = data.between_time('9:30','16:00')
        data_daily = (data_NormalTradingHours.resample('D')
                     .agg({'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last', 'Volume': 'sum'})).dropna()
        output_path = f'/Users/steve/Documents/MATLAB/SNP500 STOCKS 1 MIN DATA/{ticker_str}_D.csv'
        data_daily.to_csv(output_path, sep=',')
        print(f"处理完成:{ticker_str}")
    except FileNotFoundError:
        print(f"警告:未找到文件 {file_path},跳过该股票")

额外优化点

  • 我加了try-except块来捕获可能的文件不存在错误,这样遇到单个缺失文件时程序不会直接崩溃,还能给出提示。
  • 用f-string来拼接路径,比str()拼接更清晰易读。
  • 增加了处理完成的打印提示,方便你跟踪进度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:06:24