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

Pandas DataReader produces DataFrame with inaccessible indices

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

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

现在,print(tdata) returns 数据符合预期:

            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']) returns KeyError

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

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

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

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

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

因为你有一个 non-int 类型的索引,尝试 tdata.loc['2018-03-23'] 因为这会让 pandas 将字符串解释为索引值。