Como Remover Linhas Duplicadas em Arquivos Excel e CSV com Python

Como Remover Linhas Duplicadas em Arquivos Excel e CSV com Python

A presença de registros duplicados em planilhas Excel e arquivos CSV é um dos problemas mais comuns na higienização de dados. Com a biblioteca pandas, você consegue carregar o arquivo, identificar e eliminar linhas idênticas com um único comando, salvando o resultado limpo de forma automatizada.

Python
import pandas as pd

def remover_duplicadas(caminho_entrada: str, caminho_saida: str, colunas_chave: list = None):
    # Carrega o arquivo conforme a extensão (.csv ou .xlsx/.xls)
    if caminho_entrada.endswith('.csv'):
        df = pd.read_csv(caminho_entrada)
    else:
        df = pd.read_excel(caminho_entrada)

    # Remove as linhas duplicadas
    # subset: define colunas específicas; keep='first': mantém a primeira ocorrência
    df_limpo = df.drop_duplicates(subset=colunas_chave, keep='first')

    # Salva o resultado no formato correspondente
    if caminho_saida.endswith('.csv'):
        df_limpo.to_csv(caminho_saida, index=False, encoding='utf-8')
    else:
        df_limpo.to_excel(caminho_saida, index=False)

    print(f"Sucesso! Registros originais: {len(df)} | Registros únicos: {len(df_limpo)}")

# Exemplo prático de uso
if __name__ == "__main__":
    # Remove duplicatas considerando todas as colunas
    remover_duplicadas("vendas.xlsx", "vendas_limpo.xlsx")

    # Remove duplicatas baseando-se apenas em colunas específicas (ex: 'CPF' ou 'Email')
    # remover_duplicadas("clientes.csv", "clientes_limpo.csv", colunas_chave=["email"])

Pontos-chave

  • Parâmetro keep: Controla qual registro manter ao encontrar duplicatas. Use keep='first' (padrão) para manter a primeira ocorrência, keep='last' para a última, ou keep=False para descartar todas as linhas que apresentem repetição.

  • Remoção por colunas específicas (subset): Passar uma lista de nomes de colunas no argumento subset permite considerar uma linha duplicada com base em identificadores únicos (como ID, e-mail ou CPF), ignorando variações nas demais colunas.

  • Alteração in-place: O método gera um novo DataFrame por padrão. Para alterar o DataFrame existente sem criar uma nova variável na memória, utilize o parâmetro inplace=True.

  • Dependência do Excel (openpyxl): Para ler e salvar arquivos no formato .xlsx, o pandas utiliza a biblioteca openpyxl nos bastidores, sendo necessário garanti-la instalada no ambiente (pip install openpyxl).

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server