Remover linhas duplicadas com o Pandas!

Remover linhas duplicadas com o Pandas!

2019, Sep 03    

Nesse post irei demonstrar como remover linhas duplicadas em um dataset do pandas, esse post também serve como um lembrete quando tiver a necessidade de utilizar esse código.

Importando

import pandas as pd
  

Criando dados ou importando uma planilha

#criando dados
data = {"Name": ["James", "Alice", "Phil", "James"],
		"Age": [24, 28, 40, 24],
		"Sex": ["Male", "Female", "Male", "Male"]}
df = pd.DataFrame(data)
print(df)

#importando um arquivo excel ou csv
df = pd.read_csv('caminho para o arquivo',encoding='utf-8', delimiter=',')
  
Name Age Sex
James 24 Male
Alice 28 Female
Phil 40 Male
James 24 Male

Removendo os itens duplicados

para remover os itens duplicados, utilizamos a função do pandas drop_duplicates.

df = df.drop_duplicates()
print(df)
  
Name Age Sex
James 24 Male
Alice 28 Female
Phil 40 Male

como é possível perceber removemos a última linha que era uma duplicata da primeira linha, além disso é possível definir outros parametros para remover os dados baseado em uma única coluna, no código abaixo iremos utilizar esses parametros de forma a agrupar os dados pela idade de maior para menor, e iremos manter apenas a primeira ocorrência da linha que está duplicada.

df = df.sort_values('Age', ascending=False)
df = df.drop_duplicates(subset='Name', keep='first')
print(df)
  
Name Age Sex
Phil 40 Male
Alice 28 Female
James 25 Male

Assim temos o nosso problema de dados duplicados resolvido.