Como coletar dados de CNPJ da Receita Federal com Python

Obter dados de empresas, estabelecimentos, CNAE, sócios e muito mais de forma aumatizada é possível com ferramentas como o Python. Neste exercício, mostramos como explorar estes dados da Receita Federal do Brasil.

A Receita Federal disponibiliza diversos dados em um repositório central (https://dadosabertos.rfb.gov.br/). A seguir, exploramos alguns exemplos de obtenção de dados.

Coletando dados de CNAE

A sigla CNAE significa Classificação Nacional das Atividades Econômicas. É o instrumento de padronização nacional por meio dos códigos de atividade econômica e dos critérios de enquadramento utilizados pelos diversos órgãos da Administração Tributária do país. Em resumo, é um identificador de atividades econômicas que pode ser usado para cruzar com outras tabelas de dados

Para coletar estes dados direto da Receita Federal, primeiro abrimos o Google Colab e importamos a bibliotecas pandas e, então, coletamos os dados:

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

         cnae                                     cnae_descricao
0     0111301                                   Cultivo de arroz
1     0111302                                   Cultivo de milho
2     0111303                                   Cultivo de trigo
3     0111399  Cultivo de outros cereais não especificados an...
4     0112101                        Cultivo de algodão herbáceo
...       ...                                                ...
1354  9609208      Higiene e embelezamento de animais domésticos
1355  9609299  Outras atividades de serviços pessoais não esp...
1356  9700500                                Serviços domésticos
1357  9900800  Organismos internacionais e outras instituiçõe...
1358  8888888                  Atividade Econônica não informada

[1359 rows x 2 columns]

Coletando dados de Empresas

Os arquivos de Empresas da Receita Federal disponibilizam dados sobre:

  • Razão Social
  • CNPJ
  • Natureza jurídica
  • Porte
  • Capital social
  • Etc.

Estes arquivos são pesados e dividos em várias partes, devido ao volume de dados. Aqui coletamos apenas o arquivo “Empresas1.zip”:

        cnpj_basico  ... ente_federativo
0          00000000  ...             NaN
1          00000001  ...             NaN
2          00000002  ...             NaN
3          00000003  ...             NaN
4          00000004  ...             NaN
...             ...  ...             ...
4494855    04631955  ...             NaN
4494856    04631956  ...             NaN
4494857    04631957  ...             NaN
4494858    04631959  ...             NaN
4494859    04631960  ...             NaN

[4494860 rows x 7 columns]

Observação: o arquivo é pesado e o servidor da Receita parece ser lento, então a coleta pode ser demorada e falhar. Escreva um código com retentativas para tornar o procedimento mais robusto.

Coletando dados de Sócios

Os arquivos de Sócios da Receita Federal disponibilizam dados sobre:

  • Identificação
  • Nome
  • Qualificação
  • Faixa etária
  • Etc.

Estes arquivos são pesados e dividos em várias partes, devido ao volume de dados. Aqui coletamos apenas o arquivo “Socios1.zip”:

        cnpj_basico  id_socio  ... qualificacao_representante faixa_etaria
0          07396865         2  ...                          0            5
1          07396865         2  ...                          0            4
2          52302726         2  ...                          0            7
3          07396923         2  ...                          0            6
4          07396923         2  ...                          0            6
...             ...       ...  ...                        ...          ...
2019145    41554451         2  ...                          0            4
2019146    41554527         2  ...                          0            4
2019147    41554527         2  ...                          0            4
2019148    41554527         2  ...                          0            4
2019149    41554527         2  ...                          0            5

[2019150 rows x 11 columns]

Cruzamento de dados

Por fim, imagine que você precise cruzar estas informações, realizar filtros e produzir análises. Com a bibliotecas pandas estes procedimentos são simples. Abaixo cruzamos a tabela de empresas com a tabela de sócios, após aplicar alguns filtros:

                                     razao_social  ...  faixa_etaria
cnpj_basico                                        ...              
00000208                 BRB BANCO DE BRASILIA SA  ...             6
00000208                 BRB BANCO DE BRASILIA SA  ...             5
00000208                 BRB BANCO DE BRASILIA SA  ...             5
00000208                 BRB BANCO DE BRASILIA SA  ...             5
00000208                 BRB BANCO DE BRASILIA SA  ...             5
00000208                 BRB BANCO DE BRASILIA SA  ...             5
00000208                 BRB BANCO DE BRASILIA SA  ...             5
01535210                METAIS DE GOIAS SA METAGO  ...             4
01535210                METAIS DE GOIAS SA METAGO  ...             5
02732525             PARANA DESENVOLVIMENTO S/A -  ...             7
02732525             PARANA DESENVOLVIMENTO S/A -  ...             7
03152510     COMPANHIA DE DESENVOLVIMENTO DA LAPA  ...             7
03152510     COMPANHIA DE DESENVOLVIMENTO DA LAPA  ...             9
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             6
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             5
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             5
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             7
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             7
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             5
04583057     AGENCIA GOIANA DE GAS CANALIZADO S/A  ...             5

[20 rows x 16 columns]

Conclusão

Obter dados de empresas, estabelecimentos, CNAE, sócios e muito mais de forma aumatizada é possível com ferramentas como o Python. Neste exercício, mostramos como explorar estes dados da Receita Federal do Brasil.

Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!

Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como Criar um Agente Analista para Dados da Inflação com LangGraph

Este post mostra como automatizar a análise da inflação brasileira com o uso de agentes inteligentes. Utilizando o LangGraph, integramos dados do IPCA, núcleos de inflação e grupos do índice para criar um sistema capaz de gerar análises econômicas automatizadas com base em consultas em linguagem natural.

Como Criar um Agente para Análise da Atividade Econômica com LangGraph

Este post mostra como automatizar a análise da atividade econômica brasileira com agentes inteligentes. Utilizando o framework LangGraph e dados do IBGE e Banco Central, construímos um sistema capaz de gerar respostas analíticas a partir de perguntas em linguagem natural, unindo automação de consultas SQL e interpretação econômica.

Introdução ao LangGraph

LangGraph é um framework em Python desenvolvido para gerenciar o fluxo de controle de aplicações que integram um modelo de linguagem (LLM). Com ele podemos construir Agentes de IA robustos e previsíveis.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.