Removendo duplicatas em uma planilha do Excel usando scripts Python

Removendo duplicatas em uma planilha do Excel usando scripts Python

Remove duplicates by keeping maximum and minimum value


No artigo, scripts Python para formatar dados no Microsoft Excel, usamos scripts Python para criar um excel e fazer várias formatações de dados. Python é uma linguagem de programação interessante de alto nível. Você pode passar por vários casos de uso do Python no SQLShack.

Neste artigo, examinaremos a remoção de dados duplicados do Excel usando o Python.

Uma rápida recapitulação da remoção de linhas duplicadas no Microsoft Excel

Suponha que tenhamos os seguintes dados em uma planilha do Excel. Queremos nos livrar dos valores duplicados nesta planilha.

linhas duplicadas no Microsoft Excel

No Microsoft Excel, usamos o Remover duplicatas botão no menu Dados. Esta opção verifica valores duplicados e retém o PRIMEIRO valor exclusivo e remove outros valores.

Vamos clicar em Remover duplicatas e selecionar todas as colunas.

Remover duplicatas

Clique em ok e ele remove os valores duplicados 3 valores duplicados e retém 5 valores exclusivos.

Confirmação de remoção duplicada

Temos os seguintes dados após a remoção de duplicatas.

Dados do Excel após remover duplicatas

Suponha que você esteja trabalhando no Excel usando a linguagem Python. Se esse excel contiver valores duplicados, talvez não desejemos usar as funcionalidades do Excel. Nosso script deve ser capaz de lidar com esses dados duplicados e remover de acordo com nossos requisitos, como remover todas as duplicatas, remover todas, exceto a última duplicada, remover todas, exceto a primeira duplicada.

Vamos ver a maneira Python de lidar com dados duplicados no Excel.

Scripts Python para remover duplicatas em um excel

Antes de começarmos com o Python, verifique os pré-requisitos especificados no artigo, scripts Python para formatar dados no Microsoft Excel.

Inicie o SQL Notebook no Azure Data Studio e verifique a existência de pacotes de pandas e NumPy. Você pode clicar em Gerenciar extensões no Azure Data Studio para isso.

Cadernos SQL do Azure Data Studio

Depois de clicar em Gerenciar pacotes, ele fornece uma lista dos pacotes instalados. Aqui, podemos ver ambos pandas e NumPy pacote junto com o utilitário pip.

Gerenciar pacotes

Usamos a função pandas read_excel () para importar um arquivo do Excel. Crie um novo bloco de código no SQL Notebook e execute o código. Aqui, a instrução print imprime o quadro de dados que consiste em dados da folha do Excel.

Primeiro, importamos o pandas biblioteca para ler e escrever as planilhas do excel.

Nestes dados, poucas colunas contêm NaN na coluna de comentários. Python exibe NaN para as células que não possuem nenhum valor / texto.

Na saída, também vemos valores de índice para linhas individuais. A primeira linha começa com o ID de índice 0 e aumenta em 1 a cada nova linha.

Leia Também  Métodos diferentes para identificar o número da versão do SQL Server

Ler dados do excel

Usamos a função drop_duplicates () para remover registros duplicados de um quadro de dados nos scripts Python.

Sintaxe de drop_duplicates () em scripts Python

DataFrame.drop_duplicates (subconjunto = Nenhum, mantenha = ‘primeiro’, local = Falso)

  • Subconjunto: Neste argumento, definimos a lista de colunas a considerar para identificar linhas duplicadas. Se considerar todas as colunas no caso, não especificaremos nenhum valor
  • Manter: Aqui, podemos especificar os seguintes valores:
    • Primeiro: remova todas as linhas duplicadas, exceto a primeira

    • Última: remova todas as linhas duplicadas, exceto a última

    • Falso: remova todas as linhas duplicadas

  • No lugar: Por padrão, o Python não altera o quadro de dados de origem. Podemos especificar esse argumento para alterar esse comportamento

Exemplo 1: use drop_duplicates () sem argumentos

Na consulta a seguir, ele chama a função drop.duplicates () para [data] quadro de dados.

Na saída, podemos ver que ele remove linhas com os IDs de índice 1,5 e 7. É o comportamento padrão da função drop_duplicate (). Ele mantém o primeiro valor e remove outras duplicatas.

Use drop_duplicates () sem argumentos

Exemplo 2: use drop_duplicates () junto com os nomes das colunas

Por padrão, o Pandas cria um quadro de dados para todas as colunas disponíveis e verifica se há dados duplicados. Suponhamos que queremos excluir as colunas Comentários para verificar duplicatas. Isso significa que se a linha contiver valores semelhantes no restante das colunas, ela deverá ser uma linha duplicada. Temos poucos registros em nossa planilha do Excel que contêm mais valores duplicados se não considerarmos a coluna de comentários.

Nos seguintes scripts Python, especificamos nomes de colunas no argumento do subconjunto. Os pandas verificam essas colunas e removem os valores duplicados. Exclui a coluna de comentários nesse caso.

Exemplo 2a: manter = argumento “primeiro”

Também especificamos outro argumento keep = first para instruir o Python a manter o primeiro valor e remover outras duplicatas. São os comportamentos padrão para que possamos excluir esse parâmetro aqui também.

Veja a saída e temos apenas três registros disponíveis. Ele removeu todas as linhas duplicadas das colunas especificadas. Temos linhas com os índices de índice 0,2 e 4 na saída usando o primeiro valor no argumento keep.

Use drop_duplicates () junto com os nomes das colunas

Exemplo 2b: Manter = “último” argumento

Nós podemos mudar o argumento keep = last. Ele mantém a última linha das duplicatas e remove as linhas duplicadas anteriores. Vamos mudar o argumento e ver a saída.

Nesse caso, a saída muda e temos linhas com o ID do índice 1,2,7 na saída.

Manter =

Exemplo 2c: Manter = argumento “false”

Anteriormente, mantivemos a primeira ou a última linha e removemos outras linhas duplicadas. Suponha que desejemos remover todos os valores duplicados na planilha do Excel. Podemos especificar o valor False no parâmetro keep para ele.

Se executarmos o Script Python acima, obteremos a seguinte mensagem de erro.

ValueError: keep deve ser “first”, “last” ou False

Manter = argumento

Para o primeiro e o último valor, usamos aspas duplas, mas precisamos especificar o valor False sem aspas. Vamos remover a cotação e executar o código.

Na saída, não obtemos nenhuma linha porque não temos nenhuma linha exclusiva na planilha do Excel.

Saída do argumento Keep =

Para testar o código acima, vamos adicionar uma nova linha no excel e executar o código acima. Devemos obter a linha na saída. O script funciona e obtemos linhas únicas na saída.

Inserir uma nova linha

Exemplo 3: Remova duplicatas mantendo o valor máximo e mínimo

Agora, suponha que tenhamos uma nova coluna Age na planilha do excel. Alguém entrou na idade errada para os funcionários. Queremos remover os valores duplicados, mas manter a linha que tem o valor máximo de idade para um funcionário. Por exemplo, Rohan tem duas entradas nesta planilha. Ambas as linhas parecem semelhantes; no entanto, uma linha mostra 22 anos, enquanto outra tem o valor 23. Queremos remover a linha com uma idade mínima. Nesse caso, a linha com 22 anos de idade para Rohan deve ser removida.

Remova duplicatas mantendo o valor máximo e mínimo

Para esse requisito, usamos uma função de script Python adicional sort_values ​​(). No código a seguir, classificamos os valores da idade em ordem crescente usando a função data.sort_values ​​(). Na ordem crescente, os dados são classificados da idade mínima para a máxima, para que possamos manter o último valor e remover outras linhas de dados.

Na saída, podemos ver que possui linhas com idade máxima para cada funcionário. Por exemplo, Rohan mostra 23 anos que é a idade máxima disponível nos dois registros.

Remova duplicatas mantendo o valor máximo

Da mesma forma, podemos alterar a classificação dos dados em ordem decrescente e remover as duplicatas com valores mínimos de idade.

Remova duplicatas mantendo o valor mínimo

Exemplo 4: função drop_duplicate () usando argumento inplace

Por padrão, o Pandas retorna um novo quadro de dados e não altera o quadro de dados de origem. Podemos especificar o argumento inplace = True, e ele também altera o quadro de dados de origem.

Execute a seguinte consulta e chame o quadro de dados no final; retorna o conteúdo do quadro de dados de origem.

argumento local

Vamos alterar o valor padrão do argumento inplace e visualizar a alteração na saída.

inplace = argumento verdadeiro

Destaque valores duplicados com códigos de cores personalizados

Em muitos casos, queremos apenas verificar os dados duplicados em vez de removê-los. Em vez disso, precisamos destacar os valores duplicados e enviá-los à equipe apropriada para correção. Pode ser possível no caso de estarmos recebendo dados de terceiros.

Podemos usar formatação condicional e forneça um estilo visual (código de cores) para duplicar linhas. No código a seguir, definimos uma função de script Python para destacar valores duplicados na cor de fundo laranja. Abordaremos mais sobre a formatação condicional nos próximos artigos.

Ele nos fornece a seguinte saída e podemos interpretar facilmente quais linhas contêm valores duplicados. É útil, especialmente quando temos um grande número de linhas. Não podemos passar por cada linha nesse caso, e o código de cores nos ajuda a identificar os valores duplicados.

Realçar valores duplicados

Como alternativa, podemos usar outras funções, como GROUPBY e conte as linhas duplicadas.

Se qualquer contagem de linhas for maior que 1, será uma linha duplicada. Na saída a seguir, podemos observar que Dolly apareceu 4 vezes na planilha do Excel, o que significa que é uma linha duplicada. Rajendra não contém nenhuma linha duplicada, portanto, sua contagem é 1 na saída.

Contagem de linhas duplicadas

Conclusão

Neste artigo, exploramos o processo para remover linhas duplicadas em uma planilha do Excel usando scripts Python. Gostei da maneira de lidar com arquivos do Excel usando Python. Abordaremos scripts mais úteis nos próximos artigos. Fique ligado!

Rajendra Gupta
Últimas mensagens de Rajendra Gupta (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br