Это часть кода (упражнения) из книги О'Рейли Python for Data Analysis.Получение NaN для колонки в пандах DataFrame
from pandas import Series, DataFrame
import pandas.io.data as web
all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
all_data[ticker] = web.get_data_yahoo(ticker)
price = DataFrame({k: v['Adj Close'] for k,v in all_data.items()})
Странное это, что, когда я смотрю на результирующую DataFrame, содержание для Google всегда NaN
:
Я знаю, что код не является то, что вы назвали бы оптимальные, но это книжные упражнения, и я стараюсь учиться у них, экспериментируя.
Если я только данные, относящиеся к Google и сделать DataFrame из этого, появляются реальные цифры:
DataFrame(all_data['GOOG']['Adj Close']).head()
Но когда я пытаюсь сделать то же самое для всех тикер, он опять не идет:
DataFrame([all_data['GOOG']['Adj Close'],
all_data['AAPL']['Adj Close'],
all_data['IBM']['Adj Close'],
all_data['MSFT']['Adj Close']],
index=['GOOG', 'AAPL', 'IBM', 'MSFT']).T.head()
Любое понимание того, что может быть причиной этого, будет с благодарностью!
Версия информация:
- Python 3.4.2
- панды (0.16.2)
- NumPy (1.9.2)
Теперь я чувствую себя глупо, поскольку ответ смотрел мне прямо в лицо. Я подозревал, что я делал что-то неправильно при слиянии данных, но это произошло только из-за периода (2014 по сравнению с 2010 годом). Спасибо, что поняли! –