Como Analisar a Frota de Veículos em Circulação no Brasil

O Denatran publica mensalmente a estatística da frota de veículos circulate no Brasil, com várias visões, sendo que a mais detalhada é a que contém o Estado, Município, Marca/Modelo, Ano de Fabricação e Quantidade de Veículos.

Essa estatística de Janeiro de 2021 é um arquivo ZIP de 117 MB que descompactado gera um arquivo texto de 952 MB e incríveis 17.898.253 linhas. Tentei abrir o arquivo no Excel mas das quase 18 milhões de linhas, ele consegue abrir “apenas” 1.048.576 linhas.

Apelei então para o SQLite pra ler o arquivo CSV em uma tabela em memória e exportar apenas as linhas de uma marca e modelo específicos para um arquivo Excel – tudo isso levou menos de 5 minutos.

Passo a passo:

1 – Abrir o Terminal e entrar no SQLite3:

Last login: Fri Mar 5 13:25:27 on ttys000
The default interactive shell is now zsh.
Henriques-Mini:~ henriquecintra$ sqlite3
SQLite version 3.32.3 2020-06-18 14:16:19
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

2 – Mudar o modo de leitura para CSV (Comma Separated Values), mas com ponto e vírgula (;) como separador:

sqlite> .mode csv
sqlite> .separator ";"

3 – Importar o arquivo texto para uma nova tabela em memória – eu chamei a tabela de “frota”:

sqlite> .import I_Frota_por_UF_Municipio_Marca_e_Modelo_Ano_Janeiro_2021.TXT frota

4 – Verificar se a estrutura da tabela foi criada corretamente:

sqlite> .schema frota
CREATE TABLE frota(
"UF" TEXT,
"Município" TEXT,
"Marca Modelo" TEXT,
"Ano Fabricação Veículo CRV" TEXT,
"Qtd. Veículos" TEXT
);

5 – Mudar o “output” do SQLite para colunas com cabeçalho e verificar se as primeiras 10 linhas de dados estão corretas na tabela:

sqlite> .header on
sqlite> .mode column
sqlite> select * from frota limit 10;
UF Município Marca Modelo Ano Fabricação Veículo CRV Qtd. Veículos
---------- ---------- ------------ -------------------------- -------------
ACRE ACRELANDIA AGRALE/1800 1989 1.0
ACRE ACRELANDIA AGRALE/1800 1990 1.0
ACRE ACRELANDIA AGRALE/1800D 1989 1.0
ACRE ACRELANDIA AGRALE/1800D 1990 1.0
ACRE ACRELANDIA AGRALE/1800D 1993 1.0
ACRE ACRELANDIA AGRALE/6000 2005 1.0
ACRE ACRELANDIA AGRALE/6000 2008 1.0
ACRE ACRELANDIA AGRALE/6000 2010 1.0
ACRE ACRELANDIA AGRALE/7000D 1994 2.0
ACRE ACRELANDIA AGRALE/7000D 1995 1.0

6 – Contar o número total de linhas na tabela:

sqlite> select count(*) from frota;
17898252

7 – Mudar o “output” do SQLite para Excel:

sqlite> .excel

8 – Abrir (no Excel) o resultado da consulta das linhas cuja Marca seja “Peugeot” e o modelo comece com “208 GT”:

sqlite> select * from frota where "Marca Modelo" like "PEUGEOT/208 GT%";

Algumas curiosidades sobre a frota de veículos emplacados (não considera veículos que deram baixa no Denatran):

  • Existem apenas 631 Peugeot 208 GT dentre os 94.790 Peugeot 208 rodando no Brasil, do total de 1.095.225 Peugeots no país;
  • Tem mais veículos rodando fabricados em 2005 (2.850.701) que veículos fabricados em 2020 (2.731.092);
  • O ano com maior número de veículos fabricados que continuam emplacados é 2011, com 6.051.961;
  • O Brasil tem um total de 110.575.550 veículos emplacados, sendo 10.040.546 importados.

Deixe um Comentário

0 Comentários.

Não fique de fora, dê sua opinião!

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.