4
respostas

[Bug] Estou tendo problemas ao realizar a importação

Ao importar o script direto pelo o Power BI, ele me retorna o seguinte erro:

não é possivel estabelecer conexão

Detalhes: "ADO.NET: ΡУţнǿń śçгĭφţ ēґѓог.
<pi>2023-12-23 20:59:56,641 [logging.log_init] INFO: LOGLEVEL=INFO
2023-12-23 20:59:56,641 [detalhes.get_papel] INFO: detalhes: call: get..._list()
2023-12-23 20:59:56,641 [detalhes.get_detalhes_list] INFO: get list: [Papel: VALE3]
C:\Users\joaop\bulltrend\bt_dash\Lib\site-packages\fundamentus\detalhes.py:232: FutureWarning: Passing literal html to 'read_html' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
  tables_html = pd.read_html(content.text, decimal=",", thousands='.')
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
</pi>"

o meu código de importação é:

# Importando as bibliotecas
import fundamentus
import pandas as pd

# Definindo a carteira de ações
carteira_fund = ["VALE3", "BBAS3", "KLBN3", "GGBR3", "ITSA3",
               "PETR3", "BBSE3", "TAEE3", "CSAN3", "WEGE3", "TASA4", "CXSE3", "PRIO3", "CMIG3"]

# Criando um df com algumas infos da carteira
ind = fundamentus.get_papel(carteira_fund)[['Empresa','Setor', 'Subsetor', 'Cotacao', 'Min_52_sem', 'Max_52_sem', 'Valor_de_mercado',
                                            'Nro_Acoes', 'Patrim_Liq','Receita_Liquida_12m','Receita_Liquida_3m',
                                            'Lucro_Liquido_12m', 'Lucro_Liquido_3m']]
# Passando o ticker para uma coluna
ind = ind.reset_index()
ind.rename(columns = {'index':'Ativo'}, inplace=True)

# Alterando colunas object para numeric
colunas = ['Cotacao', 'Min_52_sem', 'Max_52_sem', 'Valor_de_mercado', 'Nro_Acoes', 'Patrim_Liq',
           'Receita_Liquida_12m', 'Receita_Liquida_3m', 'Lucro_Liquido_12m', 'Lucro_Liquido_3m']
ind[colunas] = ind[colunas].apply(pd.to_numeric, errors='coerce', axis=1)

# Criando um novo df com alguns indicadores da carteira
ind_2 = fundamentus.get_resultado_raw().reset_index()
ind_2 = ind_2.query("papel in @carteira_fund")
ind_2 = ind_2[['papel','P/L', 'Div.Yield','P/VP','ROE']].reset_index(drop=True)
ind_2.rename(columns={'papel': 'Ativo','Div.Yield':'DY'}, inplace= True)

# Concatenando os dfs em um só com as infos e indicadores
indicadores = pd.merge(ind, ind_2, on="Ativo")

# Criando uma coluna para LPA (Lucro por Ação) e VPA (Valor Patrimonial por ação)
# para calcular a fórmula de Graham  Valor intrínseco de uma ação (VI = √22,5 x LPA x VPA)
indicadores["LPA"] = (indicadores["Lucro_Liquido_12m"] / indicadores ["Nro_Acoes"]).round(2)
indicadores["VPA"] = (indicadores["Patrim_Liq"] / indicadores ["Nro_Acoes"]).round(2)

del ind, ind_2, carteira_fund, colunas
4 respostas

Oi, Paulo! Tudo bem por aí?

Ao tentar realizar a conexão entre o Python e o Power BI, pode haver alguma inconsistência envolvendo nossas bibliotecas. Na mensagem de erro que você compartilhou, parece existir um problema relacionado aos recursos do Pandas. Sendo assim, acompanhe comigo os seguintes passos:

  1. No Power BI, navegue até Arquivo > Opções e Configurações > Opções > Carregamento de Dados;

  2. Vá até o final da aba "Carregamento de Dados" e limpe o cache do seu Power BI;

  3. Estando no CMD, ative seu Ambiente Virtual (bt_dash);

  4. Desinstale a biblioteca Pandas:

    pip uninstall pandas
    
  5. Instale a biblioteca novamente:

    pip install pandas==1.3.5
    
  6. Depois disso, tente obter os dados de novo.

Caso o problema continue, peço que verifique se a versão do seu Python e das bibliotecas instaladas condizem com o que foi proposto na atividade de preparação do ambiente. No que diz respeito ao Python, sugiro remover todas as versões presentes em sua máquina e manter apenas a 3.7.7.

Espero que dê tudo certo, Paulo! Se o erro persistir, estarei aqui para resolvermos isso juntos.

Um abraço!

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

Olá Andrieli, tudo bem?

Obrigado pelo o retorno!

Então, realizei todos os passos mencionados acima e nada ainda. Desistantalei e instalei novamente o Power BI, Python, Bibliotecas e até critei novamente um outro ambiente virtual, e mesmo assim o erro continua.

Tambem me deparei com um erro ao tentar criar Os grásficos da "Página 1" e também na hora de criar o Gráfico em Candels.

Acredito que seja necessário regravarem a aula, pode ter alguma atualização com alguma biblioteca do pandas.

Entrei em contato com um amigo meu que esta no ITA (que faz engenharia da computação) e ele também falou que possa ser algum erro com a biblioteca desatualizada.

Aguardo um retorno.

Algum retorno? estou com o mesmo erro

Olá, Paulo e Kaue! Tudo bem?

Pelo que vocês escreveram, acredito que esse erro apenas ocorreu nos dados que vocês puxaram pela biblioteca fundamentus. Certo? Ou também ao puxar os dados de cotação ele foi exibido?

Vocês conseguiriam testar pelo VS Code ou algum IDE esse mesmo código? Lembrando, claro, de instalar as versões do Python e bibliotecas apontadas nas atividades? Assim ficaria melhor para notar qual possa ser o erro. O log de erro do PBI nem sempre é muito claro e isso pode ajudar a isolar se o problema está na interação entre o PowerBI e o Python ou se está no script Python em si.

Se passar por esta parte sem problemas, peço que rodem dentro do prompt de comando o comando python --version para ter certeza de qual versão do Python está sendo utilizada no processo. No curso, utilizamos a versão 3.7.7 do Python. Aconselho que caso existam outras versões no pc de vocês que vocês as desinstalem e mantenha apenas a que citei (Mas isso em último caso).

Outra coisa, verifiquem o arquivo requirements.txt abrindo-o e notando se as versões das bibliotecas listadas são compatíveis com a sua versão do Python. Se necessário, ajuste as versões das bibliotecas para que sejam compatíveis. E, se algumas das bibliotecas estiverem causando o problema, vocês podem tentar instalá-las manualmente uma por uma usando o comando pip install nome_da_biblioteca==versão. Isso pode ajudar a identificar qual biblioteca específica está causando o problema. Dentro do próprio ambiente virtual, vocês podem desinstalar e instalar uma a uma que está no arquivo requirements.txt.

Este link aponta quais pacotes do Python o Power BI tem suporte, pode valer a pena conferir se os parâmetros dos projetos de vocês seguem os requisitos apontados pela própria Microsoft.

P.S.: Como curiosidade minha, até para verificar possíveis melhorias, vocês estão usando a versão anterior ou a mais nova do Power BI?

Espero que essas sugestões ajudem a resolver o problema que vocês estão enfrentando.

Forte abraço e bons estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software