将雅虎财经日期设置为数据框索引
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
的排序对我来说似乎很奇怪...
我有一个 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
的排序对我来说似乎很奇怪...