um dos maiores desafios para investidores de longo prazo que utilizam Python nos seus investimentos é obter os dados fundamentalistas para auxiliar nas suas análises recentemente nós tivemos aqui no Python né a queda da biblioteca investe pai e também algumas funções né de análise fundamentalista da biblioteca wi-fi também Deixaram de funcionar e com isso a gente perdeu algumas das principais fontes de dados que nós tínhamos para fazer análise fundamentalista pensando em auxiliar nesse processo né ajudar vocês aí a Obter dados de demonstrativos balanços e das fundamentalistas nós da trade com dados estamos trazendo hoje mais uma
biblioteca inclusive foi desenvolvida no Brasil né biblioteca BR finans que foi desenvolvido pelo nosso amigo Eudes Oliveira com que eu tive oportunidade de trabalhar na XP por um tempo o Eudes ele é parceiro aqui da trilha de Condados já teve com a gente em lives aulas inclusive se você quiser conhecer a trajetória dele eu Convido você a ouvir um podcast que a gente gravou com ele há pouco tempo o link para esse podcast vai estar aqui na descrição desse vídeo então eu vou lá para o meu computador abrir o meu Google colab para a gente
programar juntos e aprender a utilizar a biblioteca BR Fines vamos lá pessoal já tô aqui com a sessão do Google colab aberto convido vocês a fazerem o mesmo se você nunca tiver programado em Python não tem problema Basta fazer colado e ponto richard.google.com desde que você tem uma conta do Google né uma conta do Gmail por exemplo E aí nas opções vai aparecer ali uma opção para criar um novo notebook e aí você vai chegar no mesmo lugar onde eu estou primeira coisa aqui antes de começar a programar em paz então de fato com vocês
é mostrar a biblioteca né mostrar onde ela está então eu vou colocar aqui algumas coisas que eu gosto de colocar sempre aqui nos códigos né a gente colocar aqui um título colocar alguns comentários e aí eu vou mostrar para vocês onde essa biblioteca está localizada Ela tá aqui no github do próprio Eudes né então vocês podem pegar esse link que depois eu vou colocar na descrição do vídeo também a gente vai entrar aqui no github dele para ver a biblioteca tem algumas atualizações aí que ocorreram inclusive semana passada a gente vê os contribuidores vê aqui
a documentação quer que a Biblioteca tem né então ela traz esses Finn Nation statements nós temos os balanços demonstrações Tem tudo aqui da cvm eu acho interessante aqui falando um pouco em termos de sintaxe de pai então né como que eles construíram aí o racional para a gente fazer a extração dos dados tudo gira mais ou menos em torno dessa classe aqui tá é uma é uma Instância de cliente que a gente usa para conectar com a extrair os dados então mais ou menos tudo que a gente fizer vai girar em torno aqui dessa classe
depois eu vou mostrar para vocês e aqui tem um detalhamento da documentação né Nós temos aqui as funções principais que a getsevm colds consulte externa cvm categories e o gatreport tá a gente vai mostrar alguns exemplos aí dessas funções tem os parâmetros aqui a descrição de cada um deles essa biblioteca ela está no pipe né que é o repositório central de bibliotecas de Python que Vai facilitar muito a nossa vida porque isso graças a isso a gente vai conseguir importar a biblioteca simplesmente utilizando o comando PIP install Então vou colocar aqui um subtópico chamado instalação
em importação e a gente vai fazer PIP install BR finan simples assim e uma vez finalizado a instalação nós vamos para importação de fato vocês lembram ali que eu mostrei na documentação que tudo gira mais ou menos em torno da classe cvm assim Back And Então na hora de importar que a Barry fine nós vamos fazer from BR finansporte e a gente vai importar eu vou copiar eu tenho a documentação aqui do meu lado eu vou importar Justamente esse elemento aqui que eu falei além disso nós vamos fazer a importação da pandas que é crucial
e a gente vai fazer deve fazer Possivelmente alguma manipulação com a datas tá então para isso a gente vai utilizar a biblioteca date time então from date time imports uma vez isso aqui feito né A primeira etapa a gente vai promover vamos dizer assim a ligação com a cvm como eu falei para vocês quase tudo que vai girar em torno da classe cvm assim Back And tem um trecho aqui da documentação que explica certinho aí eu vou fazer mais uns um áudio aqui esse trecho aqui da documentação explica certinho sobre o back end tá E
aí quem tiver mais curiosidade quem tiver mais familiarizado com funcionamento do Python pode clicar aqui e entender como essa classe é estruturada Então vamos lá primeira etapa é utilizar essa classe para criar um elemento de cliente de Clint né que vai possibilitar a extração a gente vai chamar cvm assim tá desse jeito aqui Back And e percebam que o colab já me sugere isso a gente vai fazer entre e vai abrir e fechar parênteses isso daqui tem que ser passado para alguma variável uma variável que eu vou dar nome e aí eu vou chamar de
qualquer coisa pessoal chamar de cvm http cliente bem uma vez que isso aqui é feito é como se a gente já tivesse essa conexão com cvm possibilitada a partir de agora nós vamos começar a extração dos dados brutos tá então vou criar mais um subtópico aqui lembram lá que na documentação eu mostrei algumas funções Essas funções que nós vamos explorar aqui então eu tô explicando aqui as funções que nós vamos utilizar os códigos das empresas porque isso né queremos sistema da cvm Eles não têm stickers você não vai conseguir procurar por exemplo lá eu quero
os dados de petro4 não você vai procurar o CNPJ ou o código cvm da Petrobras então com essa função aqui a gente vai obter os códigos das empresas Então a gente vai começar pessoal obtendo os códigos cvm para todas as empresas listadas é a primeira coisa mais básica assim que a gente pode fazer com essa biblioteca Então vou descer aqui colocar como comentário a gente vai chamar o nosso cliente que a gente criou ali em cima que é o cvm http Clin tá vamos fazer um zoom aqui para vocês verem lembro que a gente criou
ali em cima e aí você vai chamar a função get cvm codes Mas você pode executar isso aqui colocar em uma variável vou colocar em outra variável que eu vou chamar de cvm codes que vai receber o resultado disso Opa assim ó beleza essa é assim táxi aqui que vocês estão vendo e que abaixo eu vou colocar print cvm code ele vai mostrar para gente todas as empresas do registro da cvm e os seus respectivos códigos a gente vai passar aqui ó e vai ver algumas empresas conhecidas tá a Petrobras né Petrobras distribuidora Petrobras química
enfim a gente já viu algumas conhecidas tá vamos supor que a gente encontrou alguma específica Eu tenho um código aqui que eu já deixei salvo Então como que a gente faria isso eu primeiro criaria um objeto Então vamos colocar aqui busca por empresa então como eu faria eu criei uma lista de um código ou de vários códigos de empresas que eu conheço eu quero extrair então por exemplo cvm eu vou chamar de codes e aqui dentro você vai colocar código de empresas que você tá interessado Eu tenho um código aqui já que eu peguei que
é da Droga Raia esse código é o 5258 então primeiro eu crio esse elemento aqui logo depois a gente vai determinar as determinar um Range de tempo tá um período de início ao fim então você vai fazer start date esse start date ele tem que estar no formato a lei da biblioteca Day Time que a gente importou lá em cima a gente vai chamar a função date e aí você vai determinar ano mês e dia então por exemplo 2019 um e um tá vai determinar a data de fim e aí fica ao seu critério algo
que você pode fazer que facilita bastante é simplesmente traz a data de hoje tá como que você faz isso eu vou chamar de and dance Você pode falar tchau e aí eu vou dizer Isso aqui vai me trazer a data de hoje tá Qualquer que seja a data aí que você esteja realizando essa análise aqui são as primeiras coisas pessoal depois você precisa determinar Quais são os demonstrativos Quais são os arquivos da cvm que você quer extrair aí assim nesse caso é bom que você conheça realmente a documentação da biblioteca para saber o que que
é cada coisa né que lá na cvm por exemplo você tem os dfps você tem ITR você tem fato relevante né E eles têm ali eles recebem códigos específicos eu vou trazer para vocês Esses códigos já para vocês terem uma ideia eu vou copiar aqui colocar aqui para vocês então ó a gente tem esse código aqui é st4 Tá para dfps é st3 para ITR para fatos relevantes a gente tem esse código aqui ó e pe 4 a underscore -1 underscore menos um e tem mais um parâmetro que a gente vai utilizar aqui também que
é o seguinte a gente vai determinar se a gente quer ou não apenas o último report no intervalo de datas que vai ser esse parâmetro aqui ó o traseiro aqui para vocês o parâmetro last have Beat Então se true aqui a gente vai retornar apenas o último repórter intervalo de datas né se falso o contrário Aproveita mas você tá criando vários parâmetros criando várias variáveis aí essas variáveis não são vão ser utilizadas em lugar nenhum elas vão sim na verdade você configurou os parâmetros que vão ser jogados dentro dessa função aqui ó essa daqui na
verdade que ela é que vai extrair o resultados então isso aqui que a gente tá fazendo pessoal era basicamente uma pré-configuração para jogar esses parâmetros dentro da função grato consulta externa cvm Resort tá então a ideia que dá sintaxe Ela é bem parecida com anterior aqui dos códigos tá a gente vai pegar o cliente http vai fazer ponto inclusive o colab que vai me sugerir já algumas funções né get consulta externa cvm aqui dentro e aí eu vou dar um enter aqui para a gente tem uma sintaxe um pouco mais elegante a gente vai passar
os parâmetros tá Então vamos lá primeiro parâmetro que eu quero passar código da cvm ou seja qual que é a empresa que você quer obter o resultado isso aqui ele vai admitir tanto uma empresa quanto várias empresas basta a gente pegar o resultado que a gente colocou aqui nessa lista Então vou copiar isso aqui e jogar aqui dentro Esse é o primeiro argumento dessa função depois logo abaixo a gente vai dizer qual que é sua data de início Qual que é sua data de fim então meu start date vai ser a própria variável de início
start date isso aqui também vírgula variável de fim na verdade não o argumento do fim né a variável Ela tá aqui em cima o end date é o que é essa variável aqui and DT beleza vírgula faltando mais dois parâmetros aqui né que aqui ó na documentação o argumento recebe o nome de Last date é a mesma coisa ele vai ser igual a própria variável que você definiu em cima Faltou um argumento que é o catchergory tá E aí você vai passar esse aqui aqui dentro maravilha então basicamente é isso pessoal Essa é a sintaxe
presente para a gente utilizar aqui a função GAP consulta externa cvm resorts que vai fazer o que né ele vai procurar na cvm os arquivos aí demonstrativos os balanços etc que obedecem que seguem a sua busca tá vamos executar ele vai levar um tempo tá dependendo da amplitude de data dependendo do número de empresas que você passar então ele leva um tempo mesmo mas aí o que que ele vai trazer Olha que interessante cada uma dessas linhas aqui é um arquivo é um documento então a forma como a biblioteca foi construída é o seguinte você
faz uma busca na cvm ele retorna todos os arquivos que estejam de acordo com a sua busca depois que ele te indica os arquivos na cvm que estão disponíveis a gente vai para uma segunda etapa que é obter os arquivos propriamente ditas porque isso aqui pessoal não são os arquivos ainda não são as demonstrativos ainda ele tá me dizendo quais os demonstrativos que estão disponíveis segundo a minha busca e olha que interessante ele traz Inclusive a URL você pode saber ali a URL da própria cvm Onde estão aqueles arquivos tá a gente viu aqui que
a busca foi bem sucedida né Ele trouxe realmente para Raia a Drogasil né Não da empresa a categoria A gente tem informações trimestrais né o ITR tem fato relevante tem os dfps né ou seja tem os resultados trimestral tem o anual é de fato relevante a gente tem uma descrição dos fatos relevantes então por exemplo aqui aprovação de aumento de Capital com bonificação você consegue ver a data né que aqueles fatos relevantes foram divulgados o código da cvm aqui da empresa certinho né tá batendo aqui com a minha busca ou seja muito bacana conseguimos aí
fazer a primeira etapa de forma bem sucedida né trazer esses dados percebam que isso aqui eu não coloquei nenhuma variável né se vocês quiserem atribuir né fazer uma atribuição a gente pode dar um nome isso aqui eu vou chamar de surf resorts é ficar ainda melhor ainda mais organizado o meu código tá vamos esperar terminar a extração E aí eu posso deixar aqui a variável por fora percebam como eu falei que a gente obteve aqui deixa eu deixar um comentário aqui em cima obtivemos aqui vários demonstrativos né dfp e TR e também os fatos relevantes
algo bacana que eu queria mostrar para vocês se a gente colocar isso aqui dentro da função olha só que interessante isso aqui é um deita frame só que um Data Frame que tem variáveis numéricas variáveis categóricas e aqui dentro parece ter alguma espécie de html né Vocês parecem HTML aqui dentro desse Data Frame se a gente olhar aqui mais para frente tem essa outra coluna aqui viu o URL que é URL original da cvm que eu falei para vocês vamos tentar obter pessoal a gente viu que o nome da coronavírus URL tá então a gente
pode fazer assim ó certo resorts ponto viu pode fazer tanto por ponto tá que a estrutura de atributo vocês podem fazer também abrindo e fechando colchete especificando o nome da coluna que é viu o RL tá se fizer isso aqui ele vai trazer a coluna inteira se eu quiser extrair aqui apenas a primeira linha como que eu faço a gente vai usar o operador Lock e colocar o índice aqui né da posição que a gente quer pegar eu quero a primeira linha então a posição é zero olha só e a gente consegue especificar Qual que
é o RL da cvm para aquele documento específico que a gente vamos ver Quais as colunas que estão disponíveis aqui nesse daí Então a gente tem o código da cvm o nome da empresa categoria tipo etc a que mais que a gente pode ver aqui Quais quais Será que são as datas disponíveis a gente consegue ver isso também ou seja a gente vai ver aqui a trimestralidade dos demonstrativos Então a gente vai pegar essa coluna aqui ó a data de referência tá vamos fazer search resorts pegar essa coluna aqui data de referência Opa aqui dentro
e aí a gente vai usar o método e Unique que traz dentro de uma leidiana de uma coluna Quais são os níveis ou seja Quais são as categorias únicas dentro daquela coluna quer que eu quero dizer com isso a gente vai ter repetições aqui nessa coluna né só que aqui ó ele traz as os valores singulares que aparecem dentro dessa coluna então por exemplo as datas que aparecem 31 de fevereiro de 2018 26 de fevereiro 2019 31 de março de 2019 E por aí vai né Por que que tem bastante coisa aqui você poderia perguntar
né Poderia falar assim ah mas o demonstrativo ele não é trimestral então a gente não deveria ter datas aqui trimestrais na sequência de três em três meses Talvez mas o que que aconteceu aqui na hora de especificar os documentos a gente colocou fatos relevantes também e os fatos relevantes eles vão acontecer na frequência maior então se você quisesse enxugar um pouco a sua busca quer que você poderia fazer remove fatos relevantes daqui Deixa apenas demonstrativos e balanços são esses dois códigos aqui para dfp e ITR né que é que são os trimestrais então vamos executar
de novo para ver a diferença Maravilha fazemos a busca novamente E aí percebam que os fatos relevantes sumiram daqui tá pessoal todo o resto continua igual só que aqui a gente vai estar exibindo o quê estamos exibindo uma url de um demonstrativo e quem tiver curiosidade pega seu URL aqui vai lá na cvm para provar e Olha só pessoal sucesso conseguimos comprovar então que nós temos ó uma dfp consolidada a demonstração do resultado a gente consegue ver aqui ó o protocolo a data do documento que que é mais importante é um documento pessoal aqui ó
original da cvm então na prática o que a Biblioteca tá fazendo aqui é por trás fazendo esse processo aí de scraping na cvm e trazendo essa informação aqui para o pai Então vamos continuar então percebam que as colunas são as mesmas mas olha só que legal o meu rende de data né diminuiu agora nós temos o fato 31 de dezembro 2018 31 de Março 2019 30 de junho 2019 perceberam pessoal que interessante de fato agora a gente tem aí a trimestralidade dos demonstrativos eu vou criar uma subseção aqui eu vou falar que é obtendo um
report vamos lá e se a gente quiser se apenas um demonstrativo específico ou uma coleção de demonstrativos Então a gente tem o nome do nosso Data Frame ali em cima que é o search resorts e aqui a gente vai fazer fazer um filtro né Então abre colchetes eu quero resorts onde a coluna de categoria for o que e aí você vai colocar aqui para ele Qual a categoria que você quer basta olhar aqui no deitar frame pessoal como que tá escrito Ó dfp demonstrações financeiras padronizadas você pode copiar isso aqui ou copiar isso aqui vamos
copiar esse daqui então Ctrl control V aqui a gente vai esperar o nosso filtro Olha que legal agora a gente tá com demonstrativo específico apenas com as dsps de raio Drogasil só que a gente ainda tem aquele probleminha que eu falei né a gente ainda tá exibindo aqui quais são as dfps eu ainda não abri uma dfp específica para a gente extrair um arquivo de demonstrativo específico nós vamos utilizar a função get report essa função foi uma das mencionadas aqui em cima quando eu trouxe para vocês as quatro principais funções dessa biblioteca nós colocamos aqui
ó gatherport utilizado para obter todos os demonstrativos de uma empresa na cvm percebam também quais são os parâmetros que nós devemos passar dentro dessa função todos esses parâmetros são obrigatórios não nem todos mas a gente vai ver aqui como é assim táxi Então vamos descer voltar para onde a gente estava vou criar uma subseção chamada de extração única e nós vamos trazer aqui um demonstrativo qualquer Por que que eu tô dizendo a extração única porque essa biblioteca ela foi criada para dar a capacidade para o usuário extrair tanto um arquivo só de um demonstrativo como
vários também de uma vez se assim ele quiser só que para isso nós vamos precisar do Código da cvm referente a esse arquivo não sei se vocês sabem mas para cada documento que tá lá no site da cvm por exemplo a balança patrimonial cada um desses arquivos recebe um número e é esse número que a gente vai usar para identificar é esse número aqui pessoal número da sequência número 7 documento então por exemplo vocês vão escolher um código aqui sei lá eu quero esse esse repórter aqui a gente vai usar ele como referência para fazer
a extração e eu vou mostrar para vocês um exemplo vamos voltar aqui então colocar um enunciado aqui no que a gente vai fazer agora nós vamos chamar o cliente né o cliente então cvm http cliente vamos chamar a função aqui você vai passar Qual que é o código do documento que você quer que no caso que eu falei para vocês era esse aqui contra você aqui é Clint né E aí a gente vai dizer agora o próximo parâmetro é qual que é a categoria o tipo de instituição é esse código aqui ó que a cvm
também passa tá vendo que é tudo um Então a gente vai colocar um aqui também se a gente fizer só isso pessoal será que vai funcionar Vamos fazer um teste Maravilha conseguiu então vamos subir aqui a gente já vê que o formato é um pouco diferente né Isso aqui é algo como um dicionário Imagina eu vamos chamar isso aqui de exemplo e vamos jogar dentro da função para ver o tipo dessa variável exemplo de fato é um dicionário se é um dicionário a gente tem que trabalhar como tal como que a gente trabalha condicionários obedecendo
a estrutura de chave e valor né quis e velhos então por exemplo eu quero só a Chaves desse dicionário você vai passar ponto Quiz tá a gente vai ver quais são as chaves Olha que interessante aqui ele tá dizendo para gente Quais são os balanços demonstrativos que tem aqui tem o balanço patrimonial do ativo balanço patrimonial passivo demonstração do resultado demonstração do resultado para gente Ou seja é bem completo né Tem tudo aqui e aí pessoal você pode usar ali o seu critério para extrair um balanço específico então a gente pode fazer Ah eu quero
apenas o balanço patrimonial ativo né do ativo tá aí ó Que bacana ele já traz na estrutura de deitar frame mais um aqui inclusive se a gente colocar a estrutura de colchete né e abrir as aspas O próprio Google colab já sugere algumas coisas para a gente então aqui ó balança patrimonial do ativo vamos ver esse aqui tá aí mais um né mito ativa a gente já trouxe aqui em cima né Vamos colocar o passivo na verdade que a gente não tinha trazido maravilha agora o que que eu quero fazer com vocês se pode se
perguntar pô Será que a Biblioteca BR faz nesse celular é correta Ela traz o dado realmente direitinho ali da cvm como que a gente pode fazer essa verificação aí de qualidade a gente vai apontar para esse documento aqui nesse daí tá fêmea original aqui em cima eu vou obter essa URL aqui e nós vamos entrar juntos nessa URL lá na cvm e nós vamos bater os dados com esses aqui que estão aparecendo aqui embaixo Então vamos fazer isso primeiro de tudo pessoal a gente tem que olhar no índice desse daí Qual que é o index
mesmo né Tá vendo que é 12 porque ele faz dois oito 12 porque a gente foi filtrando né então ele foi tirando alguns linhas alguns índices a gente ficou com dois 8 12 o índice correspondente essa linha aqui de nosso interesse é o 12 tá a gente tem que filtrar ó essa coluna aqui no índice 12 para obter essa URL aqui vamos fazer isso juntos então eu vou copiar isso aqui colar aqui embaixo trazer apenas a coluna viu o RL que acumula do meu interesse vamos usar o comando.lock para fazer né o filtro ali naquele
índice específico eu vou passar o Loki né a localização 12 essa é o URL a gente vai copiar tudo isso aqui Vamos navegar até o URL e a gente vai verificar aparentemente não tá batendo né mas vejam isso aqui pessoal ele já abre na demonstração de resultado se você abrir aqui o balanço patrimonial ativo olha só que legal estamos aí com os mesmos dados né ativo Total 13 13 B né imagino vamos agora voltar lá para o Python para a gente fazer essa verificação Então temos aqui ó 13828 13 828 a gente pode escolher algum
outro aqui balanço patrimonial passivo passivo Total passei você colante maravilha vamos voltar aqui para o pai Então temos aí ó batendo aí todos os dados maravilha então com isso a gente conseguiu verificar a qualidade dos dados de fato tá trazendo aí corretamente da cvm pessoal o que eu mostrei para vocês agora é a situação mais simples dessa função aqui que a gente utilizou Gate report Qual que é a outra situação mais complexa é quando eu extraio vários reports de uma vez para fazer essa estrutura a gente vai ter que ter um pouco mais de conhecimento
de pai então tá porque a gente vai criar um loop se você não tem conhecimento em Python tá aprendendo agora um look basicamente é uma estrutura de código que você cria né de uma forma repetida né Ele vai fazendo aquilo ali várias vezes e a gente vai extraindo vários demonstrativos e vai salvando em algum lugar como que nós vamos fazer isso aqui pessoal eu vou primeiro criar um deita frame vazio eu vou chamar de ativo e eu vou Popular Esse daí tá frame com vários relatórios com várias reportes você precisa realmente dizer qual o tipo
de report você quer então a gente vai especificar no meu caso aqui eu quero os balanços patrimoniais ativos né então eu vou fazer eu vou fazer a extração desse balanço para vários períodos né Por Um amplo intervalo de tempo então vamos lá pessoal a gente vai fazer um for para cada index e para cada linha dentro de onde E aí a gente vai usar o próprio resultado da nossa busca ali em cima que é esse daqui tá certinho resorts Ou seja eu vou criar um loop onde eu vou explorar o meu deitar frame7 depois disso
eu vou passar um método aqui da biblioteca pandas chamado Peter Rose o que que o with Rose faz ele garante que o meu loop tá inteirando né em cima do meu deitar frame o ponto e ter dessa forma e aqui a gente vai criar o nosso loop para facilitar Nossa extração eu criei uma estrutura aqui que exibe em cada loop em cada iteração qual que é a empresa que a gente está analisando eu vou copiar e vou colar aqui mas vou explicar para vocês o que é que está fazendo então tô criando a variável chamada
empresa que basicamente está pegando aqui né o meu código da cvm tá pegando o código né vai pegar o nome da empresa e a gente vai colocar também o código número do documento o código aqui da do tipo da instituição e isso vai ficar sendo exibido como uma mensagem então vai ficar imprimindo isso aqui a cada interação isso aqui pessoal é apenas uma configuração de exibição tá isso aqui não faz nada em termos de dados não tô extraindo o processando nada é importante o processamento vai acontecer de fato aqui embaixo Então vou criar uma variável
chamada reports que vai receber o resultado do que da extração dos balanços vai receber isso daqui lembra que eu falei para vocês que essa aqui era a situação mais básica que eu poderia ter que era extração para um relatório a gente vai copiar isso aqui vai colocar aqui embaixo porque agora essa extração ela vai ser feita de forma seriada para vários documentos para vários relatórios tá bem então aqui no primeiro parâmetro ao invés de determinar um documento específico um ID de documento específico eu vou fazer assim Row Sec na verdade 7 documento porque porque eu
tô passando pela sequência de documentos ele tá olhando lá o meu dente afirma original né que é o surf resorts e para cada um dos códigos de documento que ele tá encontrando ele tá indo lá na cvm e trazendo o arquivo código de instituição eu poderia deixar como um porque normalmente sempre vai ser um mas para deixar de uma forma mais genérica possível mas parametrizável possível eu vou substituir pelo nome da coluna né corretamente que é essa daqui código tipo instituição tá E aí depois disso Faltou um parâmetro nessa função vocês lembram que aquele reports
list Ou seja é uma lista dos relatórios dos demonstrativos que eu quero extrair de fato que vai ser Qual lista essa daqui ó que eu criei aqui em cima Então vou copiar e colar aqui pessoal é basicamente isso porque essa função aqui dessa forma que eu determinei é uma uma generalização desse caso particular que eu mostrei aqui para vocês é a mesma coisa só que isso aqui é para um demonstrativo só Maravilha depois que eu faço isso para cada um dos relatórios faltou apenas uma coisa aqui no meu look que é o seguinte eu tô
indo lá na cvm extraindo um arquivo onde que eu coloco esse arquivo eu posso ir ó com catenando eu posso apendar os deita frames de tal forma que eu vou empilhando um em cima do outro então a gente vai criar aqui dentro um novo loop onde eu faço isso então para cada report dentro dos reports que eu criei aqui em cima o que é que você faz eu quero que você pegue né o deita fêmea aqui de ativo e você faça do relatório que você acabou de criar aqui em cima Maravilha e depois que você
fizer isso aqui você atualiza a variável ativo você atualiza o deita frame ativo com né esse novo teta frame que se acabou de apendar apendar ou seja adicionar como a gente costuma falar aqui então gerei um novo relatório faço a pendo com o arquivo que vinha lá de cima atualizo o ativo quando eu entro no meu segundo loop o meu deita frame ativo já não está mais vazio né porque eu trouxe o relatório anterior e só deixar mais um parâmetro aqui para ajudar que é o ignor e index igual a true para a gente gerar
um novo índice ignorar os índices anteriores interessante né pessoal essa estrutura se a gente executar Isso aqui vai levar um tempo que imagina você tá trazendo vários demonstrativos vários balanços mas o que é mais legal ele vai mostrando para você ó cada um dos documentos que ele tá te traindo então ele começou pelo 125685 terminal extração depois ele foi para 125615 terminou a extração depois por 12 e por aí vai entendeu e depois que aquele fez ele empilhou no Novo deita frame e agora a gente vai ver como ficou tá vamos exibir isso aqui ficou
relativamente grande né pessoal como que ficou aqui os nossos reports Qual que é o formato disso daqui ou qual que é o tipo né esse objeto é um dicionário tá então a gente tem que usar ali os nossos conhecimentos de dicionário para trabalhar com isso vamos fazer o reports.chaves né e ver a Chaves que estão disponíveis aqui bem a gente especificou só o balanço patrimonial do ativo então ele só trouxe ele se a gente não tivesse especificado nada nos relatórios então por exemplo se eu não tivesse colocado nada aqui ó tivesse colocado aqui deixado ele
vazio ele teria extraído tudo o balanço patrimonial ativo o balanço patrimonial passivo demonstração de resultado como eu especifiquei então ele trouxe apenas o balanço patrimonial ativo vamos ver pessoal a estrutura né Desse dicionário como ele só tem uma chave então fica muito fácil a minha vida Basta fazer um filtro disso aqui ponto colocar aqui embaixo na verdade não tem esse ponto né eu não preciso disso que eu tô fazendo um filtro em um dicionário e é basicamente isso pessoal eu convido vocês aqui a testarem outras situações e ampliar o escopo das extrações aqui eu fiz
uma só para o balanço patrimonial ativo refaçam essa extração deixando isso aqui genérico para ver todos os deita frames né dos diferentes balanços vindo junto beleza pessoal espero que vocês tenham gostado dessa aula nesta semana nós estamos com inscrições abertas para mais uma turma do pmf se você gostou dessa aula aqui Convido você a conhecer a estrutura do pmf porque isso aqui acho que é um exemplo de como funciona o pmf é assim pessoal nesse mesmo jeito eu junto de vocês programando em Python em tempo real como vocês fazendo aí do lado de vocês a
gente comentando aqui o código é estrutura que a gente usa na trade com dados o pmf basicamente segue a mesma estrutura e mais interessante ainda tem uma aula do Eudes lá no pmf demonstrando a própria biblioteca que ele criou a BR finas então no pmf vocês vão ter mais detalhes ainda sobre a BR Fines beleza pessoal espero que vocês tenham gostado em caso de dúvidas sugestões comentem aqui né O que que vocês acharam o que que vocês tenham feito de forma diferente e a gente se vê na próxima oportunidade aqui no canal da trade em
Condados grande abraço e até lá