Boa noite.
Na imagem abaixo podemos ver que as colunas "DY" e "ROE" estão no formato texto conforme aula.
Após transformação o % ficou muito alto.
Minha dúvida é se o resultado (percentual muito alto) esta correto ou houve algum erro em alguma etapa?
Na imagem abaixo está a etapa com o resultado da transformação para percentual.
Código M:
let
Fonte = Python.Execute(
"# Importando as bibliotecas#(lf)import fundamentus#(lf)import pandas as pd#(lf)#(lf)# Definindo a carteira de ações#(lf)carteira_fund = [""ABEV3"", ""B3SA3"", ""ELET3"", ""GGBR4"", ""ITSA4"",#(lf) ""PETR4"", ""RENT3"", ""SUZB3"", ""VALE3"", ""WEGE3""]#(lf)#(lf)# Criando um df com algumas infos da carteira#(lf)ind = fundamentus.get_papel(carteira_fund)[['Setor', 'Cotacao', 'Min_52_sem', 'Max_52_sem', 'Valor_de_mercado',#(lf) 'Nro_Acoes', 'Patrim_Liq','Receita_Liquida_12m','Receita_Liquida_3m',#(lf) 'Lucro_Liquido_12m', 'Lucro_Liquido_3m']]#(lf)# Passando o ticker para uma coluna#(lf)ind = ind.reset_index()#(lf)ind.rename(columns = {'index':'Ativo'}, inplace=True)#(lf)#(lf)# Alterando colunas object para numeric#(lf)colunas = ['Cotacao', 'Min_52_sem', 'Max_52_sem', 'Valor_de_mercado', 'Nro_Acoes', 'Patrim_Liq',#(lf) 'Receita_Liquida_12m', 'Receita_Liquida_3m', 'Lucro_Liquido_12m', 'Lucro_Liquido_3m']#(lf)ind[colunas] = ind[colunas].apply(pd.to_numeric, errors='coerce', axis=1)#(lf)#(lf)# Criando um novo df com alguns indicadores da carteira#(lf)ind_2 = fundamentus.get_resultado_raw().reset_index()#(lf)ind_2 = ind_2.query(""papel in @carteira_fund"")#(lf)ind_2 = ind_2[['papel','P/L', 'Div.Yield','P/VP','ROE']].reset_index(drop=True)#(lf)ind_2.rename(columns={'papel': 'Ativo','Div.Yield':'DY'}, inplace= True)#(lf)#(lf)# Concatenando os dfs em um só com as infos e indicadores#(lf)indicadores = pd.merge(ind, ind_2, on=""Ativo"")#(lf)#(lf)# Criando uma coluna para LPA (Lucro por Ação) e VPA (Valor Patrimonial por ação)#(lf)# para calcular a fórmula de Graham Valor intrínseco de uma ação (VI = √22,5 x LPA x VPA)#(lf)indicadores[""LPA""] = (indicadores[""Lucro_Liquido_12m""] / indicadores [""Nro_Acoes""]).round(2)#(lf)indicadores[""VPA""] = (indicadores[""Patrim_Liq""] / indicadores [""Nro_Acoes""]).round(2)#(lf)#(lf)del ind, ind_2, carteira_fund, colunas#(lf)"
),
indicadores1 = Fonte{[Name = "indicadores"]}[Value],
#"Tipo Alterado" = Table.TransformColumnTypes(
indicadores1,
{
{"Ativo", type text},
{"Setor", type text},
{"Cotacao", Int64.Type},
{"Min_52_sem", Int64.Type},
{"Max_52_sem", Int64.Type},
{"Valor_de_mercado", Int64.Type},
{"Nro_Acoes", Int64.Type},
{"Patrim_Liq", Int64.Type},
{"Receita_Liquida_12m", Int64.Type},
{"Receita_Liquida_3m", Int64.Type},
{"Lucro_Liquido_12m", Int64.Type},
{"Lucro_Liquido_3m", Int64.Type},
{"P/L", Int64.Type},
{"DY", Int64.Type},
{"P/VP", Int64.Type},
{"ROE", Int64.Type},
{"LPA", Int64.Type},
{"VPA", Int64.Type}
}
),
#"Executar script Python" = Python.Execute(
"# 'dataset' tem os dados de entrada para este script#(lf)import numpy as np#(lf)#(lf)#(lf)dataset[""Valor_Intrinseco""] = np.sqrt(22.5*dataset[""LPA""]*dataset[""VPA""]).round(2)#(lf)",
[dataset = #"Tipo Alterado"]
),
dataset = #"Executar script Python"{[Name = "dataset"]}[Value],
#"Tipo Alterado com Localidade" = Table.TransformColumnTypes(
dataset,
{{"P/VP", type number}},
"en-US"
),
#"Tipo Alterado com Localidade1" = Table.TransformColumnTypes(
#"Tipo Alterado com Localidade",
{{"DY", Percentage.Type}},
"en-US"
),
#"Tipo Alterado com Localidade2" = Table.TransformColumnTypes(
#"Tipo Alterado com Localidade1",
{{"ROE", Percentage.Type}},
"en-US"
)
in
#"Tipo Alterado com Localidade2"