1
resposta

[Reclamação] Tabela vazia

Segui o passo a passo certo que o professor mostrou e ainda assim a tabela mostra que está vazia. Tentei outras sugestões aqui do fórum mas nenhuma delas funcionou Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Ismael! Tudo bem?

Realmente! Atualmente utilizando a versão yfinance do curso e o código da transcrição gera tabelas vazia. Obtive o mesmo comportamento, e no meu caso, consegui resolver após duas alterações principais no código e uma atualização na biblioteca yfinance.

Atualização da biblioteca yfinance

Precisei atualizar o yfinance para a versão 0.2.63. Com isso você deverá editar o arquivo no bloco de notasrequirements.txt refletindo essa atualização. Ele ficará assim:

pandas==1.3.5
numpy==1.21.6
matplotlib==3.5.3
seaborn==0.12.0
fundamentus==0.2.0
yfinance==0.2.63

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.

Alterações no código:

  1. 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)
    
  2. 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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!