Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Código nao retorna mais ações atualizadas (KeyError: 'Date')

Com este código eu conseguia capturar os valor atualizados das ações que possuo no arquivo chamado "BDACAOSA", porém recentemente é me retornado o erro (KeyError: 'Date')

import numpy as np
import pandas as pd
from pandas_datareader import data as wb

import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

import pandas_datareader.data as pdr
from datetime import datetime, timedelta

end_date = datetime.now()
#start_date = end_date - timedelta(days=365)


import datetime
dadosQTDAcoes = pd.read_csv('Dados/BDACAOSA.csv', sep = ';')
dadosQTDAcoes

acao_dataEntrada = pd.DataFrame(dadosQTDAcoes, columns =['Ação','Data Entrada', 'Investimento Total', 'Valor Entrada'])

acao_dataEntrada

acao_dataEntrada = acao_dataEntrada.sort_values(by='Data Entrada', ascending = True)
acao_dataEntrada

tickers = acao_dataEntrada['Ação']
tickers

prices=pd.DataFrame()

for t in tickers:
    prices[t]=wb.DataReader(t, data_source='yahoo', start=anterior)['Adj Close']

Valor_Acao_Horizontal = prices

Valor_Acao_Vertical = Valor_Acao_Horizontal.T
Valor_Acao_Vertical
2 respostas
solução!

Olá Bruno,

Olhando por cima o seu código não parece ter erros, só a variável anterior que aparentemente não foi criada, talvez o correto seja utilizar a variável start_date?

A mensagem de erro indica qual linha como a que causa o problema? Sempre que possível compartilha a mensagem de erro completa por favor.

Uma possibilidade é que não seja encontrado algum valor para a ação na data start passada, assim o DataReader retorna esse erro. Caso seja esse o caso você pode tentar colocar um try-catch para contornar o erro como no exemplo abaixo:

for t in tickers:
    try:
        prices[t] = wb.DataReader(t, data_source='yahoo', start=anterior)['Adj Close']
    except KeyError:
        pass

Verifica se isso ajuda. Só com o arquivo BDACAOSA.csv e mais informações para ter uma ideia melhor do que pode estar acontecendo.

Deu certo, muito obrigado