Pandas Largar Linhas Duplicadas
-
DataFrame.drop_duplicates()
Sintaxe -
Remover linhas duplicadas utilizando o
DataFrame.drop_duplicates()
Método -
Definir
keep='last'
no métododrop_duplicates()
Este tutorial explica como podemos remover todas as linhas duplicadas de um Pandas DataFrame utilizando o método DataFrame.drop_duplicates()
.
DataFrame.drop_duplicates()
Sintaxe
DataFrame.drop_duplicates(subset=None, keep="first", inplace=False, ignore_index=False)
Retorna um DataFrame removendo todas as filas repetidas no DataFrame.
Remover linhas duplicadas utilizando o DataFrame.drop_duplicates()
Método
import pandas as pd
df_with_duplicates = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303, 302],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
"Cost": ["300", "400", "350", "100", "300", "300"],
}
)
df_without_duplicates = df_with_duplicates.drop_duplicates()
print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")
print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")
Resultado:
DataFrame with duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 303 Watch 300
5 302 Watch 300
DataFrame without duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 303 Watch 300
Retira as linhas com os mesmos valores todos para todas as colunas. Por defeito, apenas as linhas com os mesmos valores para cada coluna na DataFrame são consideradas como duplicadas. No df_with_duplicates
DataFrame, a primeira e quinta fila têm os mesmos valores para todas as colunas, s que a quinta fila é removida.
Definir o parâmetro subset
para Remover Duplicatas com base apenas em Colunas Específicas
import pandas as pd
df_with_duplicates = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303, 302],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
"Cost": ["300", "400", "350", "100", "300", "300"],
}
)
df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"])
print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")
print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")
Resultado:
DataFrame with duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 303 Watch 300
5 302 Watch 300
DataFrame without duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
Aqui, passamos o Name
como argumento subset
para o método drop_duplicates()
. As quarta e quinta filas são removidas, pois têm o mesmo valor da coluna Name
que a primeira coluna.
Definir keep='last'
no método drop_duplicates()
import pandas as pd
df_with_duplicates = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303, 302],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
"Cost": ["300", "400", "350", "100", "300", "300"],
}
)
df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"], keep="last")
print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")
print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")
Resultado:
DataFrame with duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 303 Watch 300
5 302 Watch 300
DataFrame without duplicates:
Id Name Cost
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
5 302 Watch 300
Remove todas as linhas excepto a última linha que tem o mesmo valor que a coluna Name
.
Definimos keep=False
para remover todas as filas com o mesmo valor de qualquer coluna.
import pandas as pd
df_with_duplicates = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303, 302],
"Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
"Cost": ["300", "400", "350", "100", "300", "300"],
}
)
df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"], keep=False)
print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")
print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")
Resultado:
DataFrame with duplicates:
Id Name Cost
0 302 Watch 300
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
4 303 Watch 300
5 302 Watch 300
DataFrame without duplicates:
Id Name Cost
1 504 Camera 400
2 708 Phone 350
3 103 Shoes 100
Remove a primeira, quinta e sexta filas, uma vez que todas têm o mesmo valor para a coluna Name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Pandas DataFrame Row
- Como obter a contagem de filas de um Pandas DataFrame
- Como embaralhar aleatoriamente linhas DataFrame em Pandas
- Como filtrar linhas de dados com base nos valores das colunas em Pandas
- Como Iterar Através de Linhas de um DataFrame em Pandas
- Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas
- Obter a Primeira Fila de Pandas de Dataframe