Trabalhar com dados e aplicar todo o ciclo de análise em uma única ferramenta, como a linguagem Python, é ótimo e poupa tempo. No entanto, há situações em que é necessário recorrer a outras ferramentas para executar etapas específicas, como no caso de processar um volume de dados maior do que a memória. Para a felicidade dos usuários de Python, mesmo nestas situações desafiantes, é possível utilizar pacotes que integram SQL com a linguagem Python, permitindo escrever e executar comandos de SQL sem precisar trocar de tela!
Neste artigo, traduzimos 5 tarefas rotineiras de quem trabalha com dados, de Python para SQL. O objetivo é mostrar que a sintaxe do código é parecida entre as linguagens e que é possível utilizar apenas uma interface que integra ambas as ferramentas. Mostramos exemplos com dados econômicos do Brasil.
Aprenda mais sobre SQL com o curso de SQL para Economia e Finanças da Análise Macro.
Dados de exemplo
Para exemplificar as 5 tarefas rotineitas de análise de dados em Python e SQL, utilizaremos os dados desagregados do IPCA divulgados pelo IBGE em seu site. Abaixo uma amostra das tabelas, das quais criamos um banco de dados SQL para os exemplos:
Para obter o código 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.
Tabela de variação mensal do IPCA:
Item RJ POA BH REC SP DF \
1 ÍNDICE GERAL 0.33 0.56 0.71 0.88 0.62 0.50
2 ALIMENTAÇÃO E BEBIDAS 0.49 -0.46 1.25 0.72 0.77 0.41
3 ALIMENTAÇÃO NO DOMICÍLIO 0.34 -0.73 1.27 0.86 0.97 0.86
4 CEREAIS, LEGUMINOSAS E OLEAGINOSAS 4.79 3.19 5.43 3.86 5.04 2.39
5 ARROZ 4.07 3.43 4.08 3.06 4.09 2.75
BEL FOR SAL CUR GOI VIT CG RB SL AJU NACIONAL
1 1.05 0.61 0.39 0.75 0.55 0.65 0.38 1.32 1.00 0.66 0.62
2 0.61 0.75 0.84 0.47 1.21 0.77 -0.12 0.70 1.35 0.80 0.66
3 0.71 0.91 0.65 0.58 1.34 0.70 -0.42 0.94 1.50 0.84 0.71
4 2.33 5.05 3.72 3.97 5.32 6.94 2.81 2.14 3.90 2.86 4.45
5 1.50 5.58 1.43 4.29 3.63 6.10 1.98 2.13 4.36 2.48 3.77
Tabela de peso mensal do IPCA:
Item RJ POA BH \
1 ÍNDICE GERAL 100.0000 100.0000 100.0000
2 ALIMENTAÇÃO E BEBIDAS 20.9879 22.3715 22.7906
3 ALIMENTAÇÃO NO DOMICÍLIO 15.3351 16.6248 16.9982
4 CEREAIS, LEGUMINOSAS E OLEAGINOSAS 0.8920 0.5934 0.9052
5 ARROZ 0.6100 0.4057 0.6716
REC SP DF BEL FOR SAL CUR \
1 100.0000 100.0000 100.0000 100.0000 100.0000 100.0000 100.0000
2 24.3568 20.5442 17.4972 28.0409 24.8183 23.4405 21.7602
3 18.0068 14.3523 10.9859 22.6421 19.1055 17.7194 16.1661
4 0.8942 0.7213 0.5109 0.9826 1.5709 0.8592 0.6555
5 0.4505 0.5219 0.3274 0.6850 1.1276 0.5385 0.4779
GOI VIT CG RB SL AJU NACIONAL
1 100.0000 100.0000 100.0000 100.0000 100.0000 100.0000 100.0000
2 21.2422 18.3228 22.9924 24.3918 26.5286 22.8427 21.8586
3 15.9258 14.0371 17.5990 18.9972 22.9915 16.7396 16.0312
4 1.0563 0.5920 0.9389 1.2199 2.2589 0.7366 0.8257
5 0.7967 0.4692 0.7945 0.9990 1.9647 0.4244 0.5870
Exemplo 1: selecionando colunas de uma tabela
O primeiro exemplo consiste em selecionar as colunas “Item”, “RJ” e “SP” da tabela de variação mensal do IPCA. O procedimento é bem simples em ambas as linguagens e abaixo exibimos as primeiras 5 linhas do resultado das operações:
Item | RJ | SP | |
---|---|---|---|
1 | ÍNDICE GERAL | 0.33 | 0.62 |
2 | ALIMENTAÇÃO E BEBIDAS | 0.49 | 0.77 |
3 | ALIMENTAÇÃO NO DOMICÍLIO | 0.34 | 0.97 |
4 | CEREAIS, LEGUMINOSAS E OLEAGINOSAS | 4.79 | 5.04 |
5 | ARROZ | 4.07 | 4.09 |
Exemplo 2: filtrando linhas de uma tabela
No segundo exemplo, filtramos as linhas que possuam as observações “ALIMENTAÇÃO E BEBIDAS”, “HABITAÇÃO” ou “DESPESAS PESSOAIS” na coluna “Item” da tabela de variação mensal do IPCA. Abaixo exibimos as primeiras 5 linhas do resultado das operações:
Item | RJ | POA | BH | REC | SP | DF | BEL | FOR | SAL | CUR | GOI | VIT | CG | RB | SL | AJU | NACIONAL | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | ALIMENTAÇÃO E BEBIDAS | 0.49 | -0.46 | 1.25 | 0.72 | 0.77 | 0.41 | 0.61 | 0.75 | 0.84 | 0.47 | 1.21 | 0.77 | -0.12 | 0.70 | 1.35 | 0.80 | 0.66 |
190 | HABITAÇÃO | -0.62 | 1.13 | 0.36 | -0.15 | 0.00 | 0.66 | 1.38 | 0.55 | 0.07 | 0.23 | 1.01 | 0.12 | -0.29 | 3.70 | -0.49 | -0.23 | 0.20 |
392 | DESPESAS PESSOAIS | 0.45 | 0.65 | 0.15 | 0.48 | 0.92 | 0.84 | 0.51 | 0.23 | 0.66 | 0.18 | 0.27 | 0.61 | 0.55 | 0.13 | 0.94 | 0.58 | 0.62 |
Exemplo 3: ordenando valores de uma coluna da tabela
Item | RJ | POA | BH | REC | SP | DF | BEL | FOR | SAL | CUR | GOI | VIT | CG | RB | SL | AJU | NACIONAL | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
55 | LARANJA-BAÍA | NaN | 21.19 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21.19 |
108 | PEIXE-FILHOTE | NaN | NaN | NaN | NaN | NaN | 1.27 | 18.86 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 16.33 |
28 | TOMATE | 6.94 | -0.72 | 20.33 | 16.57 | 14.68 | 23.64 | 10.19 | 31.38 | 8.22 | 21.85 | 16.84 | 16.88 | 12.93 | 19.49 | 13.65 | 21.61 | 14.17 |
53 | BANANA-MAÇÃ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 14.34 | NaN | 5.01 | NaN | NaN | NaN | 12.30 |
324 | TRANSPORTE POR APLICATIVO | 2.19 | 33.90 | 13.82 | 3.09 | 11.13 | 5.54 | NaN | 2.74 | -0.48 | NaN | 11.99 | 13.92 | 4.62 | NaN | -0.88 | 3.35 | 10.67 |
Exemplo 4: sumarizando dados de uma tabela
No quarto exemplo, calculamos a média da coluna “NACIONAL”. Abaixo exibimos o resultado das operações:
media | |
---|---|
0 | 0.770897 |
Exemplo 5: cruzando dados de duas tabelas
Por fim, no quinto exemplo, fazemos um cruzamento do tipo inner join com as tabelas de variação e peso mensal do IPCA, selecionando a coluna “Item” e as colunas de variação e peso nacional de cada tabela, além de filtrar o “Item” correspondente à “ÍNDICE GERAL”. Abaixo exibimos o resultado das operações:
Item | Variacao | Peso | |
---|---|---|---|
0 | ÍNDICE GERAL | 0.62 | 100.0 |
Conclusão
Quer aprender mais?
Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.