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 将字符串解释为索引值。
我正在从 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 将字符串解释为索引值。