Pandas to_datetime识别DataFrame日期时报KeyError: 'Date'问题咨询
问题根因
pdr.get_data_yahoo() 接口返回的Pandas DataFrame默认会把日期设置为行索引,而非普通数据列,因此你的列名列表里不存在Date字段,访问data['Date']自然会触发KeyError报错。
可用解决方案
- 方案1:直接提取行索引即可,返回的索引默认已经是datetime格式,无需额外转换:
train_dates = data.index
- 方案2:如果需要把日期转为普通列方便后续处理,先重置索引再访问:
# 将行索引转为普通列,默认列名就是Date data = data.reset_index() train_dates = pd.to_datetime(data['Date'])
通用排查技巧
后续遇到类似列名KeyError问题时,可以先打印当前数据集的所有列名,确认你要访问的列是否存在、名称拼写是否一致:
print(data.columns.tolist())
补充说明:
get_data_yahoo返回的日期索引默认已经是datetime64[ns]类型,绝大多数场景下不需要再调用pd.to_datetime做二次格式转换。
内容的提问来源于stack exchange,提问作者Maha Al
相关产品推荐
相关产品推荐

