我想从雅虎下载调整后的收盘价和相应的日期,但我似乎无法弄清楚如何从pandas DataFrame
获取日期。
我正在阅读this question
的答案from pandas.io.data import DataReader
from datetime import datetime
goog = DataReader("GOOG", "yahoo", datetime(2000,1,1), datetime(2012,1,1))
print goog["Adj Close"]
这部分工作正常;但是,我需要提取与价格相对应的日期。
例如:
adj_close = np.array(goog["Adj Close"])
给我一个调整后收盘价的一维数组,我正在寻找一维日期数组,这样:
date = # what do I do?
adj_close[0]
对应date[0]
当我这样做时:
>>> goog.keys()
Index([Open, High, Low, Close, Volume, Adj Close], dtype=object)
我看到没有一个键会给我任何与日期类似的东西,但我认为必须有一种方法来创建一个日期数组。我错过了什么?
答案 0 :(得分:2)
您可以通过存储为DateTimeIndex的goog.index
获取它。
要获得一系列日期,您可以
goog.reset_index()['Date']
答案 1 :(得分:1)
import numpy as np
import pandas as pd
from pandas.io.data import DataReader
symbols_list = ['GOOG','IBM']
d = {}
for ticker in symbols_list:
d[ticker] = DataReader(ticker, "yahoo", '2014-01-01')
pan = pd.Panel(d)
df_adj_close = pan.minor_xs('Adj Close') #also use 'Open','High','Low','Adj Close' and 'Volume'
#the dates of the adjusted closes from the dataframe containing adjusted closes on multiple stocks
df_adj_close.index
# create a dataframe that has data on only one stock symbol
df_individual = pan.get('GOOG')
# the dates from the dataframe of just 'GOOG' data
df_individual.index