将雅虎财经日期设置为数据框索引

Setting yahoo finance date as dataframe index

我有一个 python 函数,可以将雅虎财经数据存储到数据框。

from pandas.io.data import DataReader
bars= DataReader(symbol, "yahoo",hist_date, today)

然后我得到返回到bars的结果如下

数据帧:

                    Open  High   Low  Close  Volume  Adj Close\nDate                                                  
                   \n2011-01-12  2.00  2.00  2.00   2.00     100   1.891661
                   \n2011-01-13  2.00  2.00  1.92   2.00    6800   1.891661
                   \n2011-01-14  1.84  2.24  1.84   2.19    1500   2.071369
                   \n2011-01-18  2.25  2.25  2.02   2.02    4300   1.910578
                   \n2011-01-19  2.07  2.12  2.07   2.12    3400   2.005161
                   \n2011-01-20  2.21  2.21  2.10   2.17    5000   2.052452
                   \n2011-01-21  2.25  2.25  2.20   2.20     600   2.080827
                   \n2011-01-24  2.20  2.20  2.12   2.18    2300   2.061911 

现在我想将日期列作为数据框的索引字段。此外,当我尝试在 table 中显示数据框时,我无法在任何地方显示日期字段。是因为在列标题和列数据之前有一个 \n 吗?

首先,让我从 Yahoo 检索 Google 的 5 天历史数据:

from pandas.io.data import DataReader
import datetime as dt

today = dt.datetime.today().strftime('%Y-%m-%d')
hist = (dt.datetime.today()-dt.timedelta(7)).strftime('%Y-%m-%d')

df = DataReader('GOOG', 'yahoo', hist, today)

df

                  Open        High        Low       Close   Volume  Adj Close
Date                        
2016-01-05  746.450012  752.000000  738.640015  742.580017  1947700 742.580017
2016-01-06  730.000000  747.179993  728.919983  743.619995  1938600 743.619995
2016-01-07  730.309998  738.500000  719.059998  726.390015  2944300 726.390015
2016-01-08  731.450012  733.229980  713.000000  714.469971  2442600 714.469971

显示 6 列数据:OHLC、交易量和调整后收盘价,以及一列名为 Date

的索引

要确定数据框确实按日期索引,您甚至可以尝试:

df.index
DatetimeIndex(['2016-01-05', '2016-01-06', '2016-01-07', '2016-01-08'], dtype='datetime64[ns]', name='Date', freq=None)

这个简短的练习是否解决了您的问题?

PS
Adjusted Close 后列名称和 Date 的排序对我来说似乎很奇怪...