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

pandas resample重采样agg聚合时报SpecificationError列不存在问题求解

报错排查思路与解决方案

排查思路

  • 验证实际列名格式
    此类报错90%以上的诱因是列名的大小写、前后隐藏空格不匹配,在pd.read_csv代码后新增行打印列名:
    print(csvframe.columns.tolist())
    核对输出的列名与agg字典中写的OPEN/HIGH/LOW/VOLUME是否完全一致,包括大小写、前后空格。
  • 验证索引设置后的列留存情况
    在csvframe = csvframe.set_index("YYYYMMDD")代码后再次打印列名,确认目标字段没有被意外删除。
  • 验证dropna操作的影响
    dropna默认按行删除空值,若你误加了axis=1参数会删除含空值的列,确认该参数配置正确。

解决方案

在读取csv后直接统一清理列名格式,即可解决绝大多数大小写、空格导致的匹配问题:

from __future__ import(absolute_import, division, print_function, unicode_literals)

import backtrader as bt
from datetime import datetime, timedelta
import pandas as pd
import csv
import numpy as np
import math

csvframe = pd.read_csv("ICICIBANK.csv", parse_dates = ["YYYYMMDD"])
# 新增列名清理逻辑:去除前后空格 + 统一转为大写
csvframe.columns = csvframe.columns.str.strip().str.upper()

print(csvframe.head())

csvframe = csvframe.set_index("YYYYMMDD")
csvframe.dropna(inplace=True)
csvframe = csvframe.resample('1M').agg({'OPEN':'first','HIGH':'max','LOW':'min','CLOSE':'last','VOLUME':'sum'})
print(csvframe.head())

如果执行列名清理后仍提示列不存在,确认你读取的csv文件路径正确,没有读取到其他错误的同名文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:06:04