如何将日期设为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
相关产品推荐
相关产品推荐

