1
resposta

Aparece a Planilha cotacoes como vazia.

Quando vou importar as informações para Power Bi usando o codigo:

import yfinance as yf
from datetime import datetime 
carteira_yf = ["CURY3.SA", "PLPL3.SA", "DIRR3.SA", "TEND3.SA", "LAVV3.SA", "CYRE3.SA","MDNE3.SA", "EVEN3.SA",
               "TRIS3.SA", "EZTC3.SA", "MRVE3.SA", "JHSF3.SA", "MTRE3.SA", "GFSA3.SA" ]

data_atual = datetime.today().strftime('%Y-%m-%d')
df = yf.download(carteira_yf, start='2000-01-03', end=data_atual)

cotacoes = df.stack(level = 1)
#para o BI cotacoes = cotacoes.reset_index().rename(columns={'level_1': 'Ativo'})
cotacoes = cotacoes.reset_index().rename(columns={'Ticker': 'Ativo'})
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]


del carteira_yf, df

Aparece o Erro abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém o codigo :

# 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 = ['DIRR3.SA', 'TEND3.SA', 'LAVV3.SA', 'CYRE3.SA', 'CURY3.SA', 'MRVE3.SA', 'MDNE3.SA', 'PLPL3.SA', 'EZTC3.SA']

# Carregando os dados da carteira
df = yf.download(carteira_yf, start="2000-01-03", end="2024-12-02")

# 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={'level_1': 'Ativo'})

# Organizando o df
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]

del carteira_yf, df

Funciona e se eu mudar qualquer coisa, até trocar um ticker pelo outro ele dá o erro acima

1 resposta

Olá Túlio, tudo bem?

Testei o código utilizando o datetime.today(), e obtive realmente as tabelas vazias. Então, acredito que yfinance pode estar não interpretando corretamente a data quando usamos datetime.today().strftime('%Y-%m-%d'), resultando em um DataFrame vazio.

Quanto ao ticker a mudança deverá ocorrer apenas no ambiente Colab. Ao inserir essa mudança no Power BI, você receberá um erro.

Então, o que eu recomendo é que você utilize o mesmo código utilizado pelo instrutor nesta aula, utilizando a chave level_1, testei e ele continua funcionando normalmente.

# 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")

# 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={'level_1': 'Ativo'})

# Organizando o df
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]

del carteira_yf, df

Com o código acima, você conseguirá prosseguir com o curso.

Espero ter esclarecido.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado