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

时间:2016-01-11 07:59:50

标签: python pandas dataframe yahoo-finance

我有一个python函数,可以将yahoo财务数据存储到数据框中。

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

我将结果返回到条形码如下

DataFrame:

                    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 

现在我想将date coloumn作为数据帧的索引字段。当我尝试在表中显示数据帧时,我无法在任何地方显示日期字段。是因为在coloumn标题和coloumn数据之前有一个\ n。

1 个答案:

答案 0 :(得分:1)

首先,让我从雅虎检索谷歌5天的历史数据:

<path id="my.path">
    <multirootfileset refid="original.fileset" />
</path>

<contrib:pathtofileset name="new.fileset" pathrefid="my.path" dir="${basedir}" />

显示了6列数据:OHLC,Volume和Adjusted Close,以及一列名为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

的索引

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

Date

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

PS
调整后的列名和df.index DatetimeIndex(['2016-01-05', '2016-01-06', '2016-01-07', '2016-01-08'], dtype='datetime64[ns]', name='Date', freq=None) 的排序对我来说显得很奇怪......