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

DataFrame无法识别Date列?为何无法选取该数据框首列?

为什么无法用data["Date"]访问nsepy返回的DataFrame的日期列?

嘿,这个问题我太熟悉了!原因其实很直白——你看到的Date并不是DataFrame的普通列,而是它的索引。

当你调用nsepy.get_history()获取股票数据时,这个方法默认会把日期字段设置为DataFrame的索引,而不是作为一个独立的列存在。这就是为什么你用data.index能看到日期,但用data["Date"]会触发AttributeError——因为Date根本不在data.columns的列表里。

解决方法分两种场景:

  • 只是想查看/使用日期索引:直接通过data.index操作就好,比如遍历日期或者做时间筛选:

    # 打印所有日期索引
    print(data.index)
    
    # 筛选2023年之后的数据
    filtered_data = data[data.index.year > 2023]
    
  • 需要把日期转为普通列:用reset_index()方法将索引转换为列,之后就能用data["Date"]访问了:

    # 重置索引,把Date转为列
    data = data.reset_index()
    
    # 现在可以正常访问Date列
    print(data["Date"])
    

你可以先运行print(data.columns)看看当前DataFrame的所有列名,会发现里面确实没有"Date",而索引是单独存储的。这样就能明白为什么之前的调用会报错啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:54:43