Pandas DataReader生成具有不可访问索引的DataFrame

时间:2018-04-01 03:01:30

标签: python python-3.x pandas pandas-datareader

我从pandas.datareader中提取数据,无法通过索引访问数据。下面是使用单个日期索引行生成数据框的代码:

import pandas as pd
from pandas_datareader import data
tdata = data.DataReader('SPY', 'iex', '2018-03-23', '2018-03-23')

现在,print(tdata)按预期返回数据:

            open    high     low   close     volume
date                                                 
2018-03-23  264.17  265.02  257.83  258.05  183534751

我可以使用print(tdata.index.values)打印索引值,结果为:['2018-03-23']

但是,print(tdata['2018-03-23'])会返回KeyError

尝试通过循环直接访问索引也会导致KeyError

for idx in tdata.index.values:
    print(tdata[idx])

谁能告诉我这里缺少什么?

1 个答案:

答案 0 :(得分:0)

当引用为df[id]时,pandas决定[]内的内容如下:

  • String - 获取与值
  • 匹配的列
  • Int - 如果索引是int类型,则获取具有此索引的行。
  • 索引值范围 - 获取具有该索引的行的子集

由于您有非int类型索引,请尝试tdata.loc['2018-03-23'],因为这会使pandas将字符串解释为索引值。