0

我正在尝试使用 Pandas read_csv从此页面下载国库数据。

url = "http://www.federalreserve.gov/datadownload/Output.aspx?rel=H15&series=bcb44e57fb57efbe90002369321bfb3f&lastObs=&from=&to=&filetype=csv&label=include&layout=seriescolumn"
res = requests.get(url)
csvio = StringIO(res.content)
dataframe = pd.read_csv(csvio, header=5, index_col=0, parse_dates=True)

columns_dic = {"RIFLGFCY10_N.B":'BC_10YEAR'}
dataframe = dataframe.rename(columns=columns_dic)

print (dataframe.head())

输出对我来说有点奇怪:

            BC_10YEAR
Time Period          
1962-01-02       4.06
1962-01-03       4.03
1962-01-04       3.99
1962-01-05       4.02
1962-01-08       4.03

我不明白为什么在打印时标题会分成两行。另外,我不清楚日期是否被正确解析。有没有办法可以修复我对 read_csv 的调用?

4

1 回答 1

1

由于您的index_col=0论点,标题被拆分。尝试不使用索引列

In [20]: dataframe = read_csv(csvio, header=5, index_col=None, parse_dates=True)

In [21]: dataframe
Out[21]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 13379 entries, 0 to 13378
Data columns:
Time Period       13379  non-null values
RIFLGFCY10_N.B    13379  non-null values
dtypes: object(2)

In [22]: dataframe.head()
Out[22]: 
  Time Period RIFLGFCY10_N.B
0  1962-01-02           4.06
1  1962-01-03           4.03
2  1962-01-04           3.99
3  1962-01-05           4.02
4  1962-01-08           4.03

并且来自 StringIO 对象的第一列数据成为 DataFrame 中的一列,而不是成为索引。

于 2013-04-15T23:36:08.613 回答