Tento článek ukazuje, jak najít duplikáty v datech a odstranit duplikáty pomocí funkcí Pandas Python.
V tomto článku jsme vzali soubor dat o populaci různých států ve Spojených státech, který je k dispozici v .formát souboru CSV. Přečteme si .csv soubor pro zobrazení původního obsahu tohoto souboru, a to následovně:
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
tisk (df_state)
Na následujícím snímku obrazovky můžete vidět duplicitní obsah tohoto souboru:
Identifikace duplikátů v Pandas Python
Je nutné určit, zda data, která používáte, mají duplikované řádky. Chcete-li zkontrolovat duplikaci dat, můžete použít kteroukoli z metod popsaných v následujících částech.
Metoda 1:
Přečtěte si soubor CSV a předejte jej do datového rámce. Potom identifikujte duplicitní řádky pomocí duplikovaný () funkce. Nakonec použijte příkaz print k zobrazení duplicitních řádků.
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
Dup_Rows = df_state [df_state.duplicated ()]
print ("\ n \ nDuplicitní řádky: \ n ".formát (Dup_Rows))
Metoda 2:
Pomocí této metody se is_duplicated sloupec bude přidán na konec tabulky a v případě duplikovaných řádků označen jako „True“.
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
df_state ["is_duplicate"] = df_state.duplikovaný ()
print ("\ n ".formát (df_state))
Odkládání duplikátů v Pandas Python
Duplikované řádky lze z datového rámce odebrat pomocí následující syntaxe:
drop_duplicates (subset = ", keep =", inplace = False)
Výše uvedené tři parametry jsou volitelné a jsou podrobněji vysvětleny níže:
držet: tento parametr má tři různé hodnoty: First, Last a False. První hodnota uchová první výskyt a odebere následné duplikáty, poslední hodnota uchová pouze poslední výskyt a odebere všechny předchozí duplikáty a False hodnota odstraní všechny duplikované řádky.
podmnožina: štítek používaný k identifikaci duplikovaných řádků
na místě: obsahuje dvě podmínky: True a False. Tento parametr odstraní duplicitní řádky, pokud je nastaven na True.
Odeberte duplikáty a zachovejte pouze první výskyt
Když použijete „keep = first“, bude zachován pouze výskyt prvního řádku a všechny ostatní duplikáty budou odstraněny.
Příklad
V tomto příkladu bude zachován pouze první řádek a zbývající duplikáty budou odstraněny:
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
Dup_Rows = df_state [df_state.duplicated ()]
print ("\ n \ nDuplicitní řádky: \ n ".formát (Dup_Rows))
DF_RM_DUP = df_state.drop_duplicates (keep = 'first')
print ('\ n \ nVýsledek DataFrame po odstranění duplikátu: \ n', DF_RM_DUP.hlava (n = 5))
Na následujícím snímku obrazovky je zachovaný výskyt prvního řádku zvýrazněn červeně a zbývající duplikace jsou odstraněny:
Odebrat duplikáty a zachovat pouze poslední výskyt
Když použijete „keep = last“, budou odstraněny všechny duplicitní řádky kromě posledního výskytu.
Příklad
V následujícím příkladu jsou odstraněny všechny duplikované řádky kromě pouze posledního výskytu.
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
Dup_Rows = df_state [df_state.duplicated ()]
print ("\ n \ nDuplicitní řádky: \ n ".formát (Dup_Rows))
DF_RM_DUP = df_state.drop_duplicates (keep = 'last')
print ('\ n \ nVýsledek DataFrame po odstranění duplikátu: \ n', DF_RM_DUP.hlava (n = 5))
Na následujícím obrázku jsou duplikáty odstraněny a je zachován pouze poslední výskyt řádku:
Odebrat všechny duplicitní řádky
Chcete-li odstranit všechny duplicitní řádky z tabulky, nastavte „keep = False“ následovně:
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
Dup_Rows = df_state [df_state.duplicated ()]
print ("\ n \ nDuplicitní řádky: \ n ".formát (Dup_Rows))
DF_RM_DUP = df_state.drop_duplicates (keep = False)
print ('\ n \ nVýsledek DataFrame po odstranění duplikátu: \ n', DF_RM_DUP.hlava (n = 5))
Jak vidíte na následujícím obrázku, z datového rámce jsou odstraněny všechny duplikáty:
Odeberte související duplikáty ze zadaného sloupce
Ve výchozím nastavení funkce kontroluje všechny duplikované řádky ze všech sloupců v daném datovém rámci. Můžete ale také určit název sloupce pomocí parametru podmnožiny.
Příklad
V následujícím příkladu jsou všechny související duplikáty odebrány ze sloupce „Státy“.
importovat pandy jako pddf_state = pd.read_csv ("C: / Users / DELL / Desktop / populaci_ds.csv ")
Dup_Rows = df_state [df_state.duplicated ()]
print ("\ n \ nDuplicitní řádky: \ n ".formát (Dup_Rows))
DF_RM_DUP = df_state.drop_duplicates (podmnožina = 'stát')
print ('\ n \ nVýsledek DataFrame po odstranění duplikátu: \ n', DF_RM_DUP.hlava (n = 6))
Závěr
Tento článek vám ukázal, jak odstranit duplicitní řádky z datového rámce pomocí drop_duplicates () funkce v Pandas Python. Pomocí této funkce můžete také vymazat svá data z duplikace nebo redundance. Článek také ukázal, jak identifikovat duplikáty v datovém rámci.