我正在尝试使用Pandas read_csv从this page下载资金数据。
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的调用?
答案 0 :(得分: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中的一列,而不是成为索引。