Как преодолеть ошибку от пропущенных данных в цикле DataReader Iterrows? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь извлечь исторические цены акций 500 акций из Yahoo Finance с помощью pandas DataReader.У меня есть код, который работает в ограниченных случаях, но у меня были проблемы с некоторыми биржевыми инструментами, которые по какой-то причине не поддерживаются финансами Yahoo, и поэтому я могу извлечь их данные.

«Нет данных»"перестает работать мой код.Я хотел бы создать код, который бы имел надежное универсальное приложение, чтобы оно работало при наличии данных, а затем просто заполнял «NaN», если его нет.Я уверен, что это прямо вперед, но просто не могу обойти это.

Я пытался исправить проблему с условиями if и else, но все, что я пытался, не работало и просто не мог понять это.

style.use('ggplot')

start = dt.datetime(2000,1,1)
end = dt.datetime(2019,5,26)

data = pd.DataFrame([])

for index, row in tickers.iterrows():

    #if web.DataReader(row['ticker'] , 'yahoo').any():
    df = web.DataReader(row['ticker'] , 'yahoo', start, end)
    df['ticker'] = str(row['ticker'])
    data = data.append(df)

    #else:
      #  df = 'Nan'
        #df['ticker'] = str(row['ticker'])

print(data.head())

Мне бы хотелосьсоздать DataFrame всех исторических цен акций для данного списка тикеров, в которые я импортировал символы тикеров.

1 Ответ

0 голосов
/ 28 мая 2019

Используйте .dropna() или, возможно, .fillna().

...