GithubHelp home page GithubHelp logo

aromeira / cnpj-full Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fabioserpa/cnpj-full

0.0 2.0 0.0 32 KB

Utilitário em Python para ler os dados públicos do CNPJ disponibilizados pela Receita Federal e carregá-los em arquivos csv ou sqlite para fácil consumo. Processa dados de empresas, sócios e CNAEs.

License: GNU General Public License v3.0

Python 100.00%

cnpj-full's Introduction

Dados Públicos CNPJ - Conversão para CSV ou SQLITE

Utilitário em Python para carregar a base completa de CNPJ disponibilizada pela Receita Federal (aprox. 85 GB) e transformá-la em arquivos csv ou sqlite para fácil consumo. Processa dados de empresas, sócios e CNAEs.

Configurações prévias

Para executar o script, é necessário que seu sistema contenha essas instalações:

Python

Versão mais atual, caso não consiga executar usando somente o comando python. Para isso, execute no terminal (se estiver usando sistemas GNU/Linux derivados do Debian):

$ sudo apt upgrade python3

Gerenciador de Pacotes do Python (Pip)

A versão mais atual. Se estiver usando Python3:

$ python3 -m pip install --upgrade pip

Pandas (pacote de análise de dados)

A versão mais atual da biblioteca Pandas para Python. Para instalar via Pip:

$ python3 -m pip install pandas

NumPy

A princípio, não é necessário. O script neste repositório usa funções da biblioteca Pandas, que utiliza uma extensão de NumPy chamada NumExpr. Então, caso seu terminal retorne erros por ausência do pacote NumPy, esse é o motivo. Para instalá-lo (se precisar):

$ python3 -m pip install numpy

NumExpr

O Pandas usa. É uma extensão que melhora a velocidade de análise no pacote NumPy. Para instalar a versão mais atual da NumExpr:

$ python3 -m pip install numexpr

Antes de executar

Atente para o fato de que o arquivo de dados disponibilizado pela RF é muito grande. São aprox. 85 GB de arquivo texto descomprimido. Portanto, é bastante provável que seu computador dedique tempo considerável a essa execução, algo em torno de 2 ou 3 horas.

O script informa no terminal o parcial do processamento, mostrando o "bloco" (conjunto parcial) de linhas que está sendo convertido. Cada bloco contempla 100.000 linhas (registros) da base de dados.

Tamanho das tabelas geradas (versão atualizada em 26/03/2019)

Tabela Tamanho do arquivo Quantidade de linhas
Empresas Aprox. 12gb 40.184.161
CNAES secundárias 1,18gb 45.321.058 *
Sócios 1,71gb 18.613.392

* Observar que esta quantidade de linhas não corresponde ao número de linhas referentes a CNAEs secundários no arquivo original, uma vez que no original todos os CNAEs secundários de uma determinada empresa estão na mesma linha, enquanto na versão convertida é gerada uma linha para cada CNAE secundário associado à empresa.

Como executar

python cnpj.py <arquivo original> <tipo de saída:csv ou sqlite> <pasta saída>

ou, no python3:

python3 cnpj.py <arquivo original> <tipo de saída:csv ou sqlite> <pasta saída>

Exemplo

python cnpj.py "data\F.K032001K.D90308" sqlite "data"

ou, no python3:

python3 cnpj.py "data\F.K032001K.D90308" sqlite "data"

cnpj-full's People

Contributors

fabioserpa avatar igorasantos avatar

Watchers

James Cloos avatar Alexandro Angelo Romeira avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.