Pandas elimina le righe duplicate
-
DataFrame.drop_duplicates()
Sintassi -
Rimuovere le righe duplicate utilizzando il metodo
DataFrame.drop_duplicates()
-
Imposta
keep='last'
nel metododrop_duplicates()
Questo tutorial spiega come possiamo rimuovere tutte le righe duplicate da un Pandas DataFrame usando il metodo DataFrame.drop_duplicates()
.
DataFrame.drop_duplicates()
Sintassi
DataFrame.drop_duplicates(subset=None, keep="first", inplace=False, ignore_index=False)
Restituisce un DataFrame rimuovendo tutte le righe ripetute nel DataFrame.
Rimuovere le righe duplicate utilizzando il metodo DataFrame.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()
print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")
print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")
Produzione:
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
Rimuove le righe con gli stessi valori per tutte le colonne. Per impostazione predefinita, solo le righe con gli stessi valori per ogni colonna nel DataFrame sono considerate duplicate. Nel DataFrame df_with_duplicates
, la prima e la quinta riga hanno gli stessi valori per tutte le colonne, quindi la quinta riga viene rimossa.
Imposta il parametro subset
per rimuovere i duplicati solo in base a colonne specifiche
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")
Produzione:
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
Qui, passiamo Name
come argomento subset
al metodo drop_duplicates()
. La quarta e la quinta riga vengono rimosse poiché hanno lo stesso valore della colonna Name
della prima colonna.
Imposta keep='last'
nel metodo 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")
Produzione:
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
Rimuove tutte le righe tranne l’ultima con lo stesso valore della colonna Name
.
Impostiamo keep=False
per rimuovere tutte le righe che hanno lo stesso valore di qualsiasi colonna.
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")
Produzione:
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
Rimuove la prima, la quinta e la sesta riga poiché hanno tutte lo stesso valore per la colonna Name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Pandas DataFrame Row
- Ottieni il conteggio delle righe di un DataFrame Pandas
- Mescola casualmente le righe DataFrame in Pandas
- Filtra le righe del dataframe in base ai valori delle colonne in Pandas
- Scorri le righe di un DataFrame in Pandas
- Ottieni l'indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione in Pandas
- Ottieni l'indice delle righe la cui colonna corrisponde a un valore specifico in Pandas