
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.