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.
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.
Jelenítse meg adatait a Jupyter Notebook grafikonjaival.
Olvassa el a következőt
- Programozás
- Piton
- Programozás
- adatbázis

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.
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