Estou tendo problemas, no momento que rodo o primeiro código rola esse erro!
Ja tentei usar o meu código e o transcrito pelo professor, nenhum dos dois funcionou.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Estou tendo problemas, no momento que rodo o primeiro código rola esse erro!
Ja tentei usar o meu código e o transcrito pelo professor, nenhum dos dois funcionou.
Olá Victor! Tudo bem?
Atualmente utilizando a versão yfinance do curso e o código da transcrição gera tabelas vazia. Abaixo deixo alguns ajustes para que a tabela seja exibida.
Você deverá editar o arquivo no bloco de notasrequirements.txt e apenas escrever os nomes das bibliotecas que iremos utilizar. Ele ficará assim:
pandas
numpy
matplotlib
seaborn
fundamentus
yfinance
Atualize no cmd com o comando:
pip install -r requirements.txt
Utilizei a versão 3.10.11 do Python. Recomendo primeiro tentar com a versão que está instalada em seus sitema, caso obtenha algum erro de incompatibilidade entre versão do Python e biblioteca, recomendo utilizar essa mesma versão que utilizei Python 3.10.11. Lembre-se que você deverá estar com o seu ambiente virtual ativo.
Adicionei o parâmetro auto_adjust=False
Isso evita que o yfinance ajuste os preços automaticamente (o que pode quebrar a estrutura dos dados com múltiplos ativos):
df = yf.download(carteira_yf, start="2022-08-01", end="2023-08-01", auto_adjust=False)
Renomeei a coluna do ticker após o empilhamento (stack):
Troque level_1 por "Ticker":
cotacoes = cotacoes.reset_index().rename(columns={'Ticker': 'Ativo'})
Código completo:
# Código completo da obtenção dos dados históricos das cotações da carteira de 01/08/2022 à 01/08/2023
# Importando a biblioteca
import yfinance as yf
# Definindo a carteira de ações
carteira_yf = ['ABEV3.SA', 'B3SA3.SA', 'ELET3.SA', 'GGBR4.SA', 'ITSA4.SA',
'PETR4.SA', 'RENT3.SA', 'SUZB3.SA', 'VALE3.SA', 'WEGE3.SA']
# Carregando os dados da carteira
df = yf.download(carteira_yf, start="2022-08-01", end="2023-08-01", auto_adjust=False)
# Passando os ativos para o multindex do df
cotacoes = df.stack(level=1)
# Resetando os índices e renomenado a coluna dos ativos
cotacoes = cotacoes.reset_index().rename(columns={'Ticker': 'Ativo'})
# Organizando o df
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]
del carteira_yf, df
Peço que testa esses novos ajustes e veja se o problema é solucionado,
Espero ter ajudado.
Qualquer dúvida que surgir, compartilhe no fórum.
Abraços e bons estudos!
Solucionado
Obrigado Monalisa!