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())
TestarPara 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())
TestarPara 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
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
Comentários
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,