Dit artikel laat zien hoe u duplicaten in gegevens kunt vinden en de duplicaten kunt verwijderen met behulp van de Pandas Python-functies.
In dit artikel hebben we een dataset genomen van de bevolking van verschillende staten in de Verenigde Staten, die beschikbaar is in een .csv-bestandsindeling. We zullen de lezen .csv-bestand om de originele inhoud van dit bestand als volgt weer te geven:
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
print(df_state)
In de volgende schermafbeelding ziet u de dubbele inhoud van dit bestand:
Duplicaten identificeren in Panda's Python
Het is noodzakelijk om te bepalen of de gegevens die u gebruikt dubbele rijen hebben. Om te controleren op gegevensduplicatie, kunt u een van de methoden gebruiken die in de volgende secties worden behandeld:.
Methode 1:
Lees het csv-bestand en geef het door aan het dataframe. Identificeer vervolgens de dubbele rijen met behulp van de gedupliceerd() functie. Gebruik ten slotte de printopdracht om de dubbele rijen weer te geven.
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
Dup_Rows = df_staat[df_staat.gedupliceerd()]
print("\n\nDubbele rijen: \n ".formaat (Dup_Rows))
Methode 2:
Met behulp van deze methode, de is_duplicated kolom wordt toegevoegd aan het einde van de tabel en gemarkeerd als 'True' in het geval van dubbele rijen.
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
df_state["is_duplicate"]= df_state.gedupliceerd()
print("\n ".formaat (df_state))
Duplicaten laten vallen in Panda's Python
Dubbele rijen kunnen uit uw dataframe worden verwijderd met behulp van de volgende syntaxis:
drop_duplicates(subset=", keep=", inplace=False)
De bovenstaande drie parameters zijn optioneel en worden hieronder in meer detail uitgelegd:
houden: deze parameter heeft drie verschillende waarden: First, Last en False. De waarde Eerste behoudt het eerste exemplaar en verwijdert daaropvolgende duplicaten, de waarde Laatste behoudt alleen het laatste exemplaar en verwijdert alle eerdere duplicaten, en de waarde False verwijdert alle dubbele rijen.
subgroep: label dat wordt gebruikt om de gedupliceerde rijen te identificeren
in situ: bevat twee voorwaarden: True en False. Deze parameter verwijdert dubbele rijen als deze is ingesteld op True.
Duplicaten verwijderen en alleen de eerste keer bewaren
Wanneer u "keep=first" gebruikt, wordt alleen de eerste rij-exemplaar behouden en worden alle andere duplicaten verwijderd.
Voorbeeld
In dit voorbeeld wordt alleen de eerste rij bewaard en worden de resterende duplicaten verwijderd:
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
Dup_Rows = df_staat[df_staat.gedupliceerd()]
print("\n\nDubbele rijen: \n ".formaat (Dup_Rows))
DF_RM_DUP = df_staat.drop_duplicates(keep='first')
print('\n\nResultaat DataFrame na dubbele verwijdering :\n', DF_RM_DUP.hoofd(n=5))
In de volgende schermafbeelding wordt de behouden eerste rij-exemplaar rood gemarkeerd en worden de resterende duplicaties verwijderd:
Duplicaten verwijderen en alleen de laatste keer bewaren
Wanneer u "keep=last" gebruikt, worden alle dubbele rijen verwijderd, behalve de laatste instantie.
Voorbeeld
In het volgende voorbeeld worden alle dubbele rijen verwijderd, behalve alleen de laatste instantie.
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
Dup_Rows = df_state[df_state.gedupliceerd()]
print("\n\nDubbele rijen: \n ".formaat (Dup_Rows))
DF_RM_DUP = df_staat.drop_duplicates(keep='laatste')
print('\n\nResultaat DataFrame na dubbele verwijdering :\n', DF_RM_DUP.hoofd(n=5))
In de volgende afbeelding worden de duplicaten verwijderd en wordt alleen de laatste rij-exemplaar behouden:
Alle dubbele rijen verwijderen
Om alle dubbele rijen uit een tabel te verwijderen, stelt u "keep=False" als volgt in:
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
Dup_Rows = df_state[df_state.gedupliceerd()]
print("\n\nDubbele rijen: \n ".formaat (Dup_Rows))
DF_RM_DUP = df_staat.drop_duplicates(keep=False)
print('\n\nResultaat DataFrame na dubbele verwijdering :\n', DF_RM_DUP.hoofd(n=5))
Zoals u in de volgende afbeelding kunt zien, worden alle duplicaten uit het dataframe verwijderd:
Gerelateerde duplicaten verwijderen uit een opgegeven kolom
Standaard controleert de functie op alle dubbele rijen van alle kolommen in het gegeven gegevensframe given. Maar u kunt ook de kolomnaam opgeven met behulp van de subset-parameter.
Voorbeeld
In het volgende voorbeeld worden alle gerelateerde duplicaten verwijderd uit de kolom 'Staten'.
panda's importeren als pddf_state=pd.read_csv("C:/Users/DELL/Desktop/population_ds.csv")
Dup_Rows = df_staat[df_staat.gedupliceerd()]
print("\n\nDubbele rijen: \n ".formaat (Dup_Rows))
DF_RM_DUP = df_staat.drop_duplicates(subset='Staat')
print('\n\nResultaat DataFrame na dubbele verwijdering :\n', DF_RM_DUP.hoofd(n=6))
Conclusie
Dit artikel liet u zien hoe u dubbele rijen uit een gegevensframe verwijdert met behulp van de drop_duplicates() functie in Panda's Python. U kunt met deze functie ook uw gegevens van duplicatie of redundantie wissen. Het artikel liet u ook zien hoe u duplicaten in uw dataframe kunt identificeren.