Tamanho de fonte
Alto contraste
Altura de linha

Como usar SQL com pandas: Um guia para iniciantes

Avatar de Ana Maria Gomes Ana Maria Gomes
7 minutos de leitura 17 dias atrás

Se você está começando a explorar o mundo da análise de dados, provavelmente já ouviu falar de pandas e SQL. Ambos são ferramentas poderosas para manipulação e análise de dados, mas você sabia que pode combiná-los para obter o melhor dos dois mundos? Neste guia, vamos explorar como usar SQL com pandas, desde a configuração do ambiente até a execução de operações complexas. Vamos lá!

Introdução

O que é pandas?

Pandas é uma biblioteca de código aberto para a linguagem de programação Python, amplamente utilizada para manipulação e análise de dados. Ela fornece estruturas de dados e funções de alto desempenho para trabalhar com dados estruturados (tabelas) e semiestruturados (JSON, XML).

O que é SQL?

SQL (Structured Query Language) é uma linguagem de programação padrão para gerenciar e manipular bancos de dados relacionais. Com SQL, você pode consultar, inserir, atualizar e excluir dados em um banco de dados.

Por que usar pandas com SQL?

Combinar pandas com SQL permite que você aproveite a simplicidade e a flexibilidade do pandas para manipulação de dados, enquanto utiliza a eficiência e a robustez do SQL para consultas complexas. Isso é especialmente útil quando você está lidando com grandes volumes de dados ou precisa realizar operações que são mais eficientes em SQL. Além disso, pandas oferece uma vasta gama de ferramentas para operações aritméticas, filtros e manipulação de dados, permitindo que você leia, combine e exporte dados de diferentes fontes de forma integrada e eficiente.

Configuração do Ambiente

Instalando pandas

Antes de começar, você precisa instalar o pandas. Você pode fazer isso usando o pip, o gerenciador de pacotes do Python:

pip install pandas

Importando bibliotecas necessárias

Depois de instalar o pandas, você precisa importar as bibliotecas necessárias no seu script Python:

import pandas as pd
import numpy as np

Estruturas de Dados Básicas no pandas

O que é um DataFrame?

Um DataFrame é uma estrutura de dados bidimensional, semelhante a uma tabela em um banco de dados, com linhas e colunas. Cada coluna em um DataFrame pode conter diferentes tipos de dados (números, strings, etc.).

O que é uma Series?

Uma Series é uma estrutura de dados unidimensional, semelhante a uma coluna em uma tabela. Ela pode conter dados de qualquer tipo.

Criando DataFrames e Series

Vamos criar um DataFrame e uma Series para entender melhor essas estruturas:

# Criando uma Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

# Criando um DataFrame
dates = pd.date_range("20230101", periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
print(df)

No exemplo acima, criamos uma Series com alguns valores e um DataFrame com valores aleatórios, usando uma faixa de datas como índice.

Operações Básicas com pandas

Selecionando colunas e linhas

Você pode selecionar colunas e linhas em um DataFrame de várias maneiras. Aqui estão alguns exemplos:

# Selecionando uma coluna
print(df["A"])

# Selecionando várias colunas
print(df[["A", "B"]])

# Selecionando linhas por rótulo
print(df.loc["20230101"])

# Selecionando linhas por posição
print(df.iloc[0])

Filtrando dados

Filtrar dados em pandas é muito semelhante a usar a cláusula WHERE em SQL:

# Filtrando linhas onde a coluna A é maior que 0
print(df[df["A"] > 0])

Adicionando novas colunas

Adicionar novas colunas a um DataFrame é simples:

# Adicionando uma nova coluna
df["E"] = df["A"] + df["B"]
print(df)

Comparação entre pandas e SQL

Selecionando dados (SELECT)

Em SQL, você seleciona dados usando a cláusula SELECT. Em pandas, você faz isso passando uma lista de nomes de colunas para o DataFrame:

-- SQL
SELECT total_bill, tip, smoker, time FROM tips;
# pandas
tips[["total_bill", "tip", "smoker", "time"]]

Filtrando dados (WHERE)

Filtrar dados em SQL é feito com a cláusula WHERE. Em pandas, você usa boolean indexing:

-- SQL
SELECT * FROM tips WHERE time = 'Dinner';
# pandas
tips[tips["time"] == "Dinner"]

Agrupando dados (GROUP BY)

Agrupar dados em SQL é feito com a cláusula GROUP BY. Em pandas, você usa o método groupby():

-- SQL
SELECT sex, count(*) FROM tips GROUP BY sex;
# pandas
tips.groupby("sex").size()

Junções (JOIN)

Junções em SQL são feitas com a cláusula JOIN. Em pandas, você usa os métodos merge() ou join():

-- SQL
SELECT * FROM df1 INNER JOIN df2 ON df1.key = df2.key;
# pandas
pd.merge(df1, df2, on="key")

Ordenando e limitando resultados (ORDER BY e LIMIT)

Ordenar e limitar resultados em SQL é feito com as cláusulas ORDER BY e LIMIT. Em pandas, você usa os métodos sort_values() e head():

-- SQL
SELECT * FROM tips ORDER BY tip DESC LIMIT 10;
# pandas
tips.sort_values(by="tip", ascending=False).head(10)

Exemplos Práticos

Carregando dados de um arquivo CSV

Carregar dados de um arquivo CSV em pandas é simples:

tips = pd.read_csv("tips.csv")
print(tips.head())

Como realizar operações SQL com pandas

Pandas é uma biblioteca poderosa em Python que permite realizar operações semelhantes às do SQL em DataFrames. Aqui estão algumas operações comuns:

  1. Selecionando colunas: Em pandas, você pode selecionar colunas específicas de um DataFrame de maneira similar ao comando SELECT do SQL.
  2. Filtrando dados: Utilize condições para filtrar linhas, equivalente ao WHERE no SQL.
  3. Agrupando dados: O método groupby em pandas permite agrupar dados e aplicar funções agregadas, similar ao GROUP BY no SQL.
  4. Junções: Realize junções entre DataFrames usando merge, que funciona como JOIN no SQL.
  5. Ordenando e limitando resultados: Ordene os dados com sort_values e limite o número de resultados com head, similar aos comandos ORDER BY e LIMIT no SQL.

Essas operações, além disso, tornam pandas uma ferramenta versátil para manipulação e análise de dados, pois combinam a simplicidade do SQL com a flexibilidade do Python.

Realizando operações SQL com pandas

Vamos realizar algumas operações SQL comuns usando pandas:

# Selecionando colunas
print(tips[["total_bill", "tip", "smoker", "time"]])

# Filtrando dados
print(tips[tips["time"] == "Dinner"])

# Agrupando dados
print(tips.groupby("sex").size())

# Junções
df1 = pd.DataFrame({"key": ["A", "B", "C", "D"], "value": np.random.randn(4)})
df2 = pd.DataFrame({"key": ["B", "D", "D", "E"], "value": np.random.randn(4)})
print(pd.merge(df1, df2, on="key"))

Calculando estatísticas básicas

Calcular estatísticas básicas em pandas é muito fácil:

# Média
print(tips["total_bill"].mean())

# Mediana
print(tips["total_bill"].median())

# Desvio padrão
print(tips["total_bill"].std())

Dicas e Boas Práticas

Evitando armadilhas comuns

Uma armadilha comum ao usar pandas é modificar um DataFrame sem salvar as alterações. Sempre atribua o resultado de uma operação a uma nova variável ou use o parâmetro inplace=True quando disponível.

Melhorando a performance

Para melhorar a performance, evite loops e use operações vetorizadas sempre que possível. Além disso, use tipos de dados apropriados e evite carregar mais dados do que o necessário.

Lidando com dados ausentes

Dados ausentes são comuns em conjuntos de dados do mundo real. Use os métodos isna(), fillna() e dropna() para lidar com dados ausentes de maneira eficaz.

Conclusão

Neste guia, exploramos como usar SQL com pandas para manipulação e análise de dados. Primeiramente, aprendemos a configurar o ambiente e, em seguida, a criar e manipular DataFrames. Além disso, abordamos como realizar operações básicas e avançadas, destacando a importância de aplicar boas práticas para melhorar a performance e evitar armadilhas comuns.

Para continuar aprendendo, recomendamos que você explore a documentação oficial do pandas. Além disso, é essencial praticar com conjuntos de dados reais para solidificar o conhecimento. Por fim, desejamos boa sorte na sua jornada de análise de dados!

Referências

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov