Tamanho de fonte
Alto contraste
Altura de linha

UPDATE e DELETE com pandas: Um Guia Comparativo com SQL

Avatar de Ana Maria Gomes Ana Maria Gomes
5 minutos de leitura 2 meses atrás

Se você já trabalha com Python há algum tempo, provavelmente já ouviu falar do pandas, uma biblioteca poderosa para manipulação e análise de dados. O pandas é amplamente utilizado no ecossistema Python devido à sua eficiência e facilidade de uso. Neste artigo, vamos explorar como realizar operações de UPDATE e DELETE com pandas, comparando essas operações com suas equivalentes em SQL. Se você está acostumado a trabalhar com bancos de dados relacionais, este guia será especialmente útil para entender como transpor seu conhecimento de SQL para pandas.

UPDATE com pandas

O que é um UPDATE em SQL?

No SQL, a operação de UPDATE é usada para modificar os dados existentes em uma tabela. Por exemplo, se quisermos dobrar o valor da coluna tip para todas as linhas onde tip é menor que 2, usaríamos a seguinte sintaxe SQL:

UPDATE produtos
SET preco = preco * 2
WHERE preco < 6;

Como realizar um UPDATE em pandas?

Para realizar um UPDATE em pandas, você pode utilizar operações de filtragem e atribuição diretamente no DataFrame. Diferente do SQL, onde você usa o comando UPDATE seguido de SET, em pandas você seleciona as linhas que deseja atualizar e atribui novos valores às colunas desejadas. Por exemplo, se você tem um DataFrame chamado df e deseja atualizar o valor da coluna ‘A’ para 500 onde o valor atual é 450, você faria algo como df.loc[df['A'] == 450, 'A'] = 500. Essa abordagem é eficiente e permite manipulações diretas nos dados, mantendo a simplicidade e a flexibilidade do pandas.

Exemplo básico de UPDATE em pandas

Vamos considerar um DataFrame chamado tips:

import pandas as pd

# Criando um DataFrame diretamente
dados = {
    'produto': ['Arroz', 'Feijão', 'Macarrão', 'Leite', 'Café'],
    'preco': [10.50, 8.90, 5.75, 4.80, 15.30],
    'quantidade': [30, 20, 50, 45, 15],
    'categoria': ['Alimento', 'Alimento', 'Alimento', 'Bebida', 'Bebida']
}

df = pd.DataFrame(dados)

# Exibir as primeiras linhas do DataFrame
print(df.head())
Testar

Para realizar a operação de UPDATE, utilizamos a seguinte abordagem:

# Atualizar a coluna 'preco' onde 'preco' é menor que 6, dobrando o valor
df.loc[df["preco"] < 6, "preco"] *= 2

Comparação com a sintaxe SQL

A operação acima é equivalente ao comando SQL mostrado anteriormente. No pandas, utilizamos loc para acessar as linhas e colunas específicas e aplicamos a operação diretamente.

DELETE com pandas

O que é um DELETE em SQL?

No SQL, a operação de DELETE é usada para remover linhas de uma tabela. Por exemplo, se quisermos remover todas as linhas onde tip é maior que 9, usaríamos a seguinte sintaxe SQL:

DELETE FROM produtos
WHERE preco > 9;

Como realizar um DELETE em pandas?

Para realizar um DELETE em pandas, você pode utilizar o método drop para remover linhas ou colunas de um DataFrame. A operação de DELETE em pandas é diferente de SQL, onde você remove entradas específicas de uma tabela. Em pandas, você pode usar o método drop para excluir linhas ou colunas, especificando o índice ou rótulo que deseja remover. Para que a alteração seja aplicada diretamente no DataFrame original, utilize o parâmetro inplace=True. Por exemplo, df.drop(index, inplace=True) remove a linha com o índice especificado.

Exemplo básico de DELETE em pandas

Vamos considerar novamente o DataFrame tips:

import pandas as pd

# Criando um DataFrame diretamente
dados = {
    'produto': ['Arroz', 'Feijão', 'Macarrão', 'Leite', 'Café'],
    'preco': [10.50, 8.90, 5.75, 4.80, 15.30],
    'quantidade': [30, 20, 50, 45, 15],
    'categoria': ['Alimento', 'Alimento', 'Alimento', 'Bebida', 'Bebida']
}

df = pd.DataFrame(dados)

# Exibir as primeiras linhas do DataFrame
print(df.head())
Testar

Para realizar a operação de DELETE em linhas no dataframe, utilizamos a seguinte abordagem:

# Identificar o índice da linha onde 'preco' é maior que 9
indices_para_remover = df[df["preco"] > 9].index

# Remover as linhas com esses índices
df.drop(index=indices_para_remover, inplace=True)

Para realizar a operação de DELETE em colunas no dataframe, utilizamos a seguinte abordagem:

# Remover a coluna 'quantidade'
df.drop(columns=['quantidade'], inplace=True)

# Exibir o DataFrame atualizado
print(df)

Comparações Detalhadas

Diferenças de performance entre pandas e SQL

Quando se trata de performance, pandas e SQL têm suas próprias vantagens e desvantagens. O pandas é extremamente eficiente para manipulação de dados em memória, enquanto o SQL é mais adequado para operações em grandes volumes de dados armazenados em bancos de dados. A escolha entre pandas e SQL depende do contexto e do tamanho dos dados que você está manipulando.

Vantagens e desvantagens de usar pandas para operações de UPDATE e DELETE

Vantagens:

  • Facilidade de uso e integração com outras bibliotecas Python.
  • Excelente para manipulação de dados em memória.
  • Flexibilidade para realizar operações complexas de dados.

Desvantagens:

  • Limitações de performance para grandes volumes de dados.
  • Consumo de memória pode ser alto para datasets muito grandes.

Casos de uso recomendados para pandas e SQL

Pandas:

  • Análise de dados exploratória.
  • Manipulação de dados em memória.
  • Integração com outras bibliotecas Python para análise e visualização de dados.

SQL:

  • Operações em grandes volumes de dados armazenados em bancos de dados.
  • Consultas complexas e otimização de performance.
  • Manutenção e manipulação de dados em sistemas de produção.

Conclusão

Neste artigo, exploramos como realizar operações de UPDATE e DELETE com pandas, comparando essas operações com suas equivalentes em SQL. Vimos exemplos práticos de como atualizar e remover dados em um DataFrame, utilizando a poderosa biblioteca pandas. Também discutimos as diferenças de performance entre pandas e SQL, bem como as vantagens e desvantagens de cada abordagem.

Se você está interessado em aprender mais sobre pandas e SQL, recomendamos explorar a documentação oficial do pandas e praticar com datasets reais. A prática é essencial para dominar essas ferramentas e aplicá-las de maneira eficaz em seus projetos 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

Tá legal, mas essas alterações no df serão refletidas no banco de dados como no caso do SQL. Não, pelo menos da forma que foi demonstrado. O que torna o post incompleto.


Infelizmente,

Avatar de Phelipe Araujo Mascarenhas
Phelipe Araujo Mascarenhas 03/10/2024