Entendendo o basicão de SQL para usuários de Python

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
Estamos usando o Python para aplicar essa rotina com códigos de pacotes da própria linguagem e para aplicar expressões equivalentes de SQL, sem precisar trocar de tela/IDE. Ambos as operações retornam o mesmo resultado.

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

No terceiro exemplo, ordenamos decrescentemente a tabela de variação mensal do IPCA com base na coluna numérica “NACIONAL”. 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
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

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.

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.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

Deploy de modelos com Python + Shinylive + GitHub gastando ZERO reais

Colocar modelos em produção pode ser um grande desafio. Lidar com custos monetários, infraestrutura operacional e complexidades de códigos e ferramentas pode acabar matando potenciais projetos. Uma solução que elimina todos estes obstáculos é a recém lançada Shinylive. Neste artigo mostramos um exemplo com um modelo de previsão para o preço do petróleo Brent.

Como automatizar tarefas repetitivas usando Python? Um exemplo para largar o Excel

Manter relatórios diários com dados e análises atualizados é um desafio, pois envolve várias etapas: coleta de dados, tratamento de informações, produção de análises e atualização de relatório. Para superar este desafio algumas ferramentas como Python + Quarto + GitHub podem ser usadas para automatizar tudo que for automatizável. Neste artigo mostramos um exemplo com dados do mercado financeiro.

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.