Az adatok tisztítása kétségtelenül rengeteg időt vesz igénybe az adattudományban, és az adatok hiánya az egyik olyan kihívás, amellyel gyakran szembe kell néznie. A pandas egy értékes Python adatkezelési eszköz, amely többek között segít kijavítani az adatkészlet hiányzó értékeit.

A hiányzó adatokat úgy javíthatja ki, hogy eldobja őket, vagy más értékekkel tölti fel őket. Ebben a cikkben elmagyarázzuk és megvizsgáljuk a hiányzó adatok pandák használatával történő kitöltésének különböző módjait.

1. Használja a fillna() metódust:

A fillna() függvény iterálja az adatkészletet, és kitölti az összes null sort egy megadott értékkel. Elfogad néhány opcionális érvet – vegye figyelembe a következőket:

Érték: Ez az az érték, amelyet be kíván szúrni a hiányzó sorokba.

Módszer: Lehetővé teszi a hiányzó értékek kitöltését előre vagy visszafelé. Elfogadja a 'bfill' vagy 'tölteni' paraméter.

A helyén: Ez feltételes állítást fogad el. Ha igaz, akkor véglegesen módosítja a DataFrame-et. Ellenkező esetben nem.

instagram viewer

Mielőtt elkezdenénk, győződjön meg arról, hogy pandákat telepített a készülékébe Python virtuális környezet segítségével csipog a terminálodban:

pip install pandák

Ezután a Python szkripten belül létrehozunk egy gyakorló DataFrame-et, és beszúrunk null értékeket (Nan) néhány sorba:

import pandákat
df = pandák. DataFrame({'A' :[0, 3, nincs, 10, 3, nincs],
„B”: [nincs, nincs, 7.13, 13.82, 7, 7],
'C': [Nincs, "Pandas", Nincs, "Pandas", "Python", "JavaScript"]})

Összefüggő:Excel-adatok importálása Python-szkriptekbe a Pandas használatával

Most nézze meg, hogyan töltheti be ezeket a hiányzó értékeket a pandákban elérhető különféle módszerekkel.

Ez a módszer magában foglalja a hiányzó értékek helyettesítését számított átlagokkal. A hiányzó adatok átlagos vagy medián értékkel való kitöltése akkor alkalmazható, ha az érintett oszlopok egész vagy lebegő adattípusúak.

A hiányzó adatokat kitöltheti a mód értékével is, amely a legtöbbször előforduló érték. Ez egész számokra vagy lebegőpontokra is vonatkozik. De hasznosabb, ha a kérdéses oszlopok karakterláncokat tartalmaznak.

Így illesztheti be az átlagot és a mediánt a korábban létrehozott DataFrame hiányzó soraiba:

#Az egyes oszlopok középértékének beszúrása a hiányzó sorokba:
df.fillna (df.mean().round (1), inplace=True)
#A mediánhoz:
df.fillna (df.median().round (1), inplace=True)
nyomtatás (df)

A modális érték beillesztése a fenti átlaghoz és mediánhoz hasonlóan nem rögzíti a teljes DataFrame-et. De beszúrhatod egy adott oszlopba, mondjuk oszlopba C:

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

Ennek ellenére továbbra is lehetséges az egyes oszlopok modális értékének beszúrása a hiányzó sorok közé for hurok használatával:

i esetén a df.oszlopokban:
df[i].fillna (df[i].mode()[0], inplace=True)
nyomtatás (df)

Ha oszlopspecifikus akar lenni az átlag, medián vagy mód beszúrásakor:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace = igaz)
nyomtatás (df)

Töltse ki a nulla sorokat értékekkel a ffill használatával

Ez magában foglalja a kitöltési mód megadását a belsejében fillna() funkció. Ez a módszer minden hiányzó sort kitölt a felette lévő legközelebbi értékével.

Nevezhetjük előre kitöltésnek is:

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

Töltse ki a hiányzó sorokat értékekkel a bfill segítségével

Itt lecseréled a töltsd ki fent említett módszerrel bfill. A DataFrame minden hiányzó sorát az alatta lévő legközelebbi értékkel tölti ki.

Ezt visszafelé kitöltésnek hívják:

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

2. A csere() metódus

Cserélheti a Nan értékek egy adott oszlopban az átlaggal, mediánnal, móddal vagy bármilyen más értékkel.

Összefüggő:pandas Parancsok a DataFrame-ek manipulálásához

Tekintse meg, hogyan működik ez úgy, hogy lecseréli a null sorokat egy elnevezett oszlopban az átlaggal, mediánnal vagy móddal:

import pandákat
import numpy #ehhez az szükséges, hogy korábban telepítse a numpy programot
#Cserélje ki a null értékeket az átlaggal:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Cserélje ki az A oszlopot a mediánnal:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Használja a modális értéket a C oszlophoz:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
nyomtatás (df)

3. A hiányzó adatok kitöltése interpolate()

A interpolál() függvény a DataFrame meglévő értékeit használja a hiányzó sorok becsléséhez.

Futtassa a következő kódot, hogy megtudja, hogyan működik ez:

#Interpoláljon visszafelé az oszlopon keresztül:
df.interpolate (method ='lineáris', limit_direction ='visszafelé', inplace=True)
#Interpoláció előremenő sorrendben az oszlopon keresztül:
df.interpolate (method ='lineáris', limit_direction ='előre', inplace=True)

Óvatosan kezelje a hiányzó sorokat

Bár csak a hiányzó adatok alapértelmezett értékekkel, például átlagokkal, móddal és egyéb módszerekkel való kitöltését vettük fontolóra, más technikák is léteznek a hiányzó értékek javítására. Az adattudósok például esettől függően néha eltávolítják ezeket a hiányzó sorokat.

Ezenkívül elengedhetetlen, hogy kritikusan gondolja át stratégiáját, mielőtt azt használná. Ellenkező esetben nemkívánatos elemzési vagy előrejelzési eredményeket kaphat. Néhány kezdeti adatvizualizációs stratégia segíthet.

Grafikonok rajzolása a Jupyter Notebookban

Jelenítse meg adatait a Jupyter Notebook grafikonjaival.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Programozás
  • Piton
  • Programozás
  • adatbázis
A szerzőről
Idowu Omisola (125 cikk megjelent)

Idowu szenvedélyesen rajong minden intelligens technológiáért és a termelékenységért. Szabadidejében kódolással játszik, és ha unatkozik sakktáblára vált, de szeret időnként kiszakadni a rutinból. Szenvedélye, hogy megmutassa az embereknek a modern technológiát, arra sarkallja, hogy többet írjon.

Továbbiak Idowu Omisola-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez