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

如何将日期设为Pandas索引并按日期检索股票数据列?

解决Pandas中日期索引设置与按日期检索数据的问题

嘿,我明白你的问题啦!你提到的parse_dates=['Date']确实会把Date列转换成datetime格式,但它不会自动把这列设为DataFrame的索引——这就是你那两种检索方式失效的核心原因~

下面给你两种简单的解决方案:

方法一:读取数据时直接指定索引

在调用pd.read_csv的时候,额外加上index_col='Date'参数,这样数据读进来后,Date列会直接成为DataFrame的索引:

dpa = pd.read_csv(fname, parse_dates=['Date'], index_col='Date')
print(dpa.head(5))

设置完成后,你之前尝试的两种检索方式就都能正常工作了:

# 方式1:通过列名+索引检索
close = dpa.Close['2017-05-12']
# 方式2:通过索引+列名检索
close = dpa['2017-05-12'].Close

方法二:读取数据后手动设置索引

如果已经完成数据读取,不想重新加载文件,可以用set_index()方法把Date列设置为索引:

# 默认drop=True会删除原Date列,若想保留原列可以加drop=False
dpa = dpa.set_index('Date')

执行完这步后,同样可以用你之前的方式按日期获取Close值。

另外给你补充一个小技巧:如果需要检索某段日期范围的数据,可以用loc方法,用法更灵活:

# 获取2017年5月10日至5月12日的Close列数据
close_range = dpa.loc['2017-05-10':'2017-05-12', 'Close']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:17