从Pandas DataFrame中提取日期

时间:2013-08-13 02:26:48

标签: python numpy pandas

我想从雅虎下载调整后的收盘价和相应的日期,但我似乎无法弄清楚如何从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)

我看到没有一个键会给我任何与日期类似的东西,但我认为必须有一种方法来创建一个日期数组。我错过了什么?

2 个答案:

答案 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