Čištění dat ve vědě o datech nepochybně zabere spoustu času a chybějící data jsou jednou z výzev, kterým budete často čelit. pandas je cenný nástroj pro manipulaci s daty Pythonu, který vám mimo jiné pomůže opravit chybějící hodnoty ve vaší datové sadě.

Chybějící data můžete opravit jejich vypuštěním nebo vyplněním jinými hodnotami. V tomto článku vysvětlíme a prozkoumáme různé způsoby, jak doplnit chybějící data pomocí pand.

1. Použijte metodu fillna():

The fillna() funkce iteruje vaši datovou sadu a vyplní všechny prázdné řádky zadanou hodnotou. Přijímá některé volitelné argumenty – všimněte si následujících:

Hodnota: Toto je hodnota, kterou chcete vložit do chybějících řádků.

Metoda: Umožňuje doplnit chybějící hodnoty dopředu nebo dozadu. Přijímá a 'bfill' nebo 'ffill' parametr.

Na místě: Toto přijímá podmíněný příkaz. Pokud je True, změní DataFrame trvale. Jinak tomu tak není.

Než začneme, ujistěte se, že do svého počítače nainstalujete pandy Virtuální prostředí Python použitím pip ve vašem terminálu:

instagram viewer
pip install pandy

Dále uvnitř skriptu Python vytvoříme cvičný DataFrame a vložíme hodnoty null (Nan) do několika řádků:

importovat pandy
df = pandy. DataFrame({'A' :[0, 3, None, 10, 3, None],
'B': [Žádné, žádné, 7,13, 13,82, 7, 7],
'C': [Žádné, "Pandy", Žádné, "Pandy", "Python", "JavaScript"]})

Příbuzný:Jak importovat data aplikace Excel do skriptů Python pomocí Pandas

Nyní se podívejte, jak můžete tyto chybějící hodnoty vyplnit pomocí různých dostupných metod v pandách.

Tato metoda zahrnuje nahrazení chybějících hodnot vypočtenými průměry. Doplnění chybějících dat střední nebo střední hodnotou je použitelné, pokud mají příslušné sloupce datové typy typu integer nebo float.

Chybějící data můžete také doplnit hodnotou režimu, která se nejčastěji vyskytuje. To platí také pro celá čísla nebo plovoucí čísla. Ale je to šikovnější, když příslušné sloupce obsahují řetězce.

Zde je návod, jak vložit průměr a medián do chybějících řádků v DataFrame, který jste vytvořili dříve:

# Chcete-li vložit střední hodnotu každého sloupce do chybějících řádků:
df.fillna (df.mean().round (1), inplace=True)
#Pro medián:
df.fillna (df.median().round (1), inplace=True)
tisknout (df)

Vložení modální hodnoty, jak jste to udělali pro průměr a medián výše, nezachytí celý DataFrame. Ale můžete jej vložit do konkrétního sloupce místo, řekněme, sloupce C:

df['C'].fillna (df['C'].mode()[0], inplace=True)

Díky tomu je stále možné vložit modální hodnotu každého sloupce přes chybějící řádky najednou pomocí smyčky for:

pro i v df.columns:
df[i].fillna (df[i].mode()[0], inplace=True)
tisknout (df)

Pokud chcete být při vkládání průměru, mediánu nebo režimu specifický pro sloupec:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
na místě=pravda)
tisknout (df)

Vyplňte nulové řádky hodnotami pomocí ffill

To zahrnuje zadání metody výplně uvnitř jako fillna() funkce. Tato metoda vyplní každý chybějící řádek hodnotou nejbližšího nad ním.

Můžete to také nazvat předplněním:

df.fillna (method='ffill', inplace=True)

Vyplňte chybějící řádky hodnotami pomocí bfill

Zde nahradíte vyplnit metoda uvedená výše s bfill. Vyplní každý chybějící řádek v DataFrame nejbližší hodnotou pod ním.

Toto se nazývá zpětné plnění:

df.fillna (method='bfill', inplace=True)

2. Metoda nahradit().

Můžete nahradit Nan hodnoty v konkrétním sloupci s průměrem, mediánem, režimem nebo jakoukoli jinou hodnotou.

Příbuzný:pandas Příkazy pro manipulaci s DataFrames

Podívejte se, jak to funguje, nahrazením prázdných řádků v pojmenovaném sloupci jeho průměrem, mediánem nebo režimem:

importovat pandy
import numpy #toto vyžaduje, abyste si dříve nainstalovali numpy
#Nahraďte hodnoty null střední hodnotou:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Nahraďte sloupec A mediánem:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Použijte modální hodnotu pro sloupec C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
tisknout (df)

3. Doplňte chybějící data pomocí interpolate()

The interpolovat() Funkce využívá existující hodnoty v DataFrame k odhadu chybějících řádků.

Spusťte následující kód, abyste viděli, jak to funguje:

#Interpolujte zpětně napříč sloupcem:
df.interpolate (method ='linear', limit_direction ='backward', inplace=True)
#Interpolujte v dopředném pořadí napříč sloupcem:
df.interpolate (method ='linear', limit_direction ='forward', inplace=True)

S chybějícími řádky zacházejte opatrně

Zatímco jsme zvažovali pouze vyplnění chybějících dat výchozími hodnotami, jako jsou průměry, režim a další metody, existují i ​​jiné techniky pro opravu chybějících hodnot. Datoví vědci například někdy v závislosti na případu tyto chybějící řádky odstraní.

Kromě toho je důležité kriticky promyslet svou strategii, než ji použijete. V opačném případě můžete získat nežádoucí výsledky analýzy nebo předpovědi. Pomoci mohou některé počáteční strategie vizualizace dat.

Jak kreslit grafy v notebooku Jupyter

Zobrazte svá data pomocí grafů Jupyter Notebook.

Přečtěte si další

PodíltweetE-mailem
Související témata
  • Programování
  • Krajta
  • Programování
  • databáze
O autorovi
Idowu Omisola (125 publikovaných článků)

Idowu je nadšený z jakékoli chytré technologie a produktivity. Ve volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.

Více od Idowu Omisola

Přihlaste se k odběru našeho newsletteru

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!

Chcete-li se přihlásit k odběru, klikněte sem