2016-02-06 5 views
1

Я новичок в Python, и я пытаюсь использовать его для финансирования, в частности, для расчета цен на акции. Я использую pandas и его объект DataFrame, но по какой-то причине я не могу получить нужные мне данные. Метод web.DataReader работает, поскольку я попробовал его в другой программе, но мой код этого не делает. Вот мой код:Pandas DataFrame не работает по умолчанию

import numpy as np 
import pandas as pd 
import pandas.io.data as web 

symbols = ['AAPL', 'MSFT', 'GLD'] 
data=pd.DataFrame() 
for sym in symbols: 
    data[sym] = web.DataReader(sym, data_source='yahoo', start='4/14/2014',end='01/30/2015')['Adj Close'] 
data.columns=symbols 
print(data['AAPL']) 

Выход пустой dataframe, и я не знаю, почему, потому что DataReader делает работу, как я попробовал его в другом месте.

+0

Шаг в 'for' петли и проверить, если' web.DataReader (...) 'фактически получает ожидаемые значения. – iled

+2

Работает для меня. Какую версию панды вы используете? 'pd .__ version__' –

+0

Я получаю непустой вывод, когда запускаю ваш код. Есть ли что-нибудь еще в коде, который вы еще не опубликовали? Кроме того, строка 'data.columns = symbols' не нужна, так как вы уже назначаете одинаковые имена столбцов в цикле' for'. – root

ответ

0

Обновление pandas до версии> = 0.17.1 должно решить вашу проблему. При использовании conda (рекомендуется):

conda update pandas 

будет делать.

После обновления вы получите предупреждение об устаревании.

Чтобы избежать этого установить pandas-datareader:

conda install pandas-datareader 

и изменения:

import pandas.io.data as web 

в:

from pandas_datareader import data as web  
+0

Вау очень благодарит! Это сработало! – user1222

Смежные вопросы