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
相关产品推荐
相关产品推荐

