2015-04-30 3 views
0

У меня есть данные о ценах на акции от yahoo, сохраненные в словаре данных кадры price_data, и я хотел бы генерировать некоторые основные графики временных рядов с этим.временные ряды yahoo финансы данные от pandas

Я попытался использовать пару других ответов здесь, однако у меня закончились некоторые грязные результаты. Например, ось x не отображается правильно с this one.

Каков наилучший способ генерации временных рядов столбца Adj Close из dataframe price_data['AAPL'] и сохранить результат в файле png?

Вот некоторая информация о структуре этого dataframe:

In [41]: type(price_data['AAPL']) 
Out[41]: pandas.core.frame.DataFrame 

In [42]: list(price_data['AAPL'].columns.values) 
Out[42]: ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close'] 

In [45]: type(price_data['AAPL'].index) 
Out[45]: pandas.tseries.index.DatetimeIndex 
+1

Что делать, если вы просто делаете 'price_data [ 'AAPL'] [ 'Adj Закрыть'] участок()'? – BrenBarn

+0

Спасибо @BrenBarn; Я знал, что должно быть что-то простое. Легко ли сохранять результат в png? plt.savefig ('foo.png') просто дает мне пустое изображение. – datavoredan

+0

Просто использование 'savefig' работает для меня. Какую версию панд вы используете? – BrenBarn

ответ

0

Вам нужно установить столбец даты для отметки времени и установить его в качестве индекса.

In [829]: temp 
Out[829]: 
     Date Open High Low Close Volume Adj 
0 19/10/11 27.37 27.47 27.01 27.13 42880000 27.13 
1 18/10/11 26.94 27.40 26.80 27.31 52487900 27.31 
2 17/10/11 27.11 27.42 26.85 26.98 39433400 26.98 
3 14/10/11 27.31 27.50 27.02 27.27 50947700 27.27 

In [830]: temp['Date'] = pd.to_datetime(temp['Date']) 

In [831]: temp 
Out[831]: 
     Date Open High Low Close Volume Adj 
0 2011-10-19 27.37 27.47 27.01 27.13 42880000 27.13 
1 2011-10-18 26.94 27.40 26.80 27.31 52487900 27.31 
2 2011-10-17 27.11 27.42 26.85 26.98 39433400 26.98 
3 2011-10-14 27.31 27.50 27.02 27.27 50947700 27.27 

И это поможет вам сюжет:.

In [832]: temp.set_index('Date')['Adj'].plot() 
Смежные вопросы