Bevezetés a Pandas.Dropna-ba ()

A Python nyílt forráskódú könyvtára, a Pandas kétségkívül a legelterjedtebb könyvtár az adattudomány és az elemzés számára. Ez egy előnyös csomag az ad-hoc adatkezelési műveletekhez. A jóváírás a DataFrames és az ezekben az adatkeretekben lévő adatok manipulálásának kitett funkciók arzenáljának rendkívül rugalmas adatreprezentációjára irányul. Bármely valós adatprobléma miatt hiányzó adatok merülnek fel, és elengedhetetlen, hogy az ilyen adatpontokkal a helyes módon gondoskodjanak. A hiányzó adatok bármilyen módon történő kezelését támogatja ez a funkció, a Pandas.Dropna () .

Pontosan mi a Pandas.Dropna ()?

A Pydata oldal hivatkozhat a funkció hivatalos meghatározására.

A bemutatott függvényfejléc a következő (az alapértelmezett paraméterértékekkel együtt):

DataFrame.dropna(self, axis=0, how='any', thresh=None, subset=None, inplace=False)

A függvénydefinícióban szereplő paraméterek (kivéve az önállományt (magát az adatkeret-objektumot)) a következők:

  • tengely: Arra a tájolásra (sorra vagy oszlopra) vonatkozik, amelyben az adatokat eldobják. A lehetséges értékek 0 vagy 1 (szintén 'index' vagy 'oszlopok'). A 0 / 'index' csepp sorokat, 1 / 'oszlopok' csepegtető oszlopokat jelent.
  • hogyan: Megadja azt a forgatókönyvet, amelyben a null értéket tartalmazó oszlopot / sort le kell dobni. Az értékek „bármilyen” vagy „minden”. Az "összes" csak akkor dobja el a sort / oszlopot, ha a sor / oszlop összes értéke nulla. Az "bármelyik" a sort / oszlopot dobja el, ha a sor / oszlop legalább egy értéke nulla.
  • thresh: Megadja a sorban / oszlopban szereplő nem NA értékek minimális számát annak érdekében, hogy azt a végső eredményben figyelembe lehessen venni. Minden olyan sort / oszlopot eltávolítunk, amely nem NA érték <küszöbértékkel rendelkezik, függetlenül a többi átadott paramétertől. Ha küszöbérték = nincs, ezt a szűrőt figyelmen kívül hagyja.
  • alkészlet: a tengely megadja, hogy a sorokat / oszlopokat le kell-e dobni. az alkészlet oszlopok / sorok listáját veszi (a tengelyével ellentétesen), amelyekre null / NA értékeket kell keresni, az oszlopok / sorok teljes listája helyett.
  • helyettesítés: Helyes gyakorlatként az eredeti DataFrame (vagy az adatszolgáltatás) nem módosul, hanem egy külön másolatot küld a változtatásokkal (azaz a sorok / oszlopok lejártak). Az inplace attribútum rugalmasságot biztosít az eredeti adatszerkezet módosításához.

Most, hogy általános képet kapunk a dropna () által feltárt paraméterekről, nézzük meg a hiányzó adatok lehetséges forgatókönyveit és hogyan kezeljük azokat.

Példa a Pandas.Dropna felhasználási eseteire ()

Az alábbiakban bemutatjuk a pandas.dropna () példákat:

Pandák importálása: A Dropna () használatához DataFrame-nek kell lennie. A DataFrame létrehozásához a panda könyvtárát importálni kell (itt nincs meglepő). Importáljuk egy álnévvel pd, hogy a modul alatt található objektumokhoz kényelmesen referencia-objektumokat hozzunk. A null értékek meghatározásához a numpy.nan ragaszkodni fogunk. Így a numpy könyvtárat np álnévvel importáljuk:

Kód:

In (1): import pandas as pd
In (2): import numpy as np

1. Hozzon létre egy DataFrame objektumot a manipulációhoz

A pandák importálásakor az összes módszer, funkció és konstruktor elérhető a munkaterületen. Tehát hozzunk létre egy DataFrame-t, amely segíthet bennünket a dropna () felhasználásának bemutatásában.

Kód:

In (3): df = pd.DataFrame(
('Company':('Google', 'Amazon', 'Infosys', 'Directi'),
'Age':('21', '23', '38', '22'),
'NetWorth ($ bn)':(300, np.nan, np.nan, 1.3),
'Founder':(np.nan, np.nan, np.nan, np.nan),
'Headquarter-Country':('United States', np.nan, 'India', 'India') ))
In (4): print(df)
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
1 Amazon 23 NaN NaN NaN
2 Infosys 38 NaN NaN India
3 Directi 22 1.3 NaN India

A nyomtatott DataFrame-t az alábbiakban bemutatott példánkkal manipuláljuk.

2. Sorok csökkentése vs oszlopok

A tengely paraméterrel sorok vagy oszlopok dobhatók le az alábbiak szerint:

Kód:

In (5): df.dropna(axis=1)

Kimenet:

Out(5):
Company Age
0 Google 21
1 Amazon 23
2 Infosys 38
3 Directi 22

Bármely olyan oszlop, amely legalább 1 NaN-t tartalmaz sejtértékként, leesik. Lássuk, hogyan fognak működni a sorok (tengely = 0).
Megjegyzés : Ez az alapértelmezett viselkedés, ha a tengely nincs kifejezetten megadva.

Kód:

In (6): df.dropna(axis=0)

Kimenet:

Out(6):
Empty DataFrame
Columns: (Company, Age, NetWorth ($ bn), Founder, Headquarter-Country) Index: ()

Hmm, tehát a visszaadott DataFrame-ben már nincs adat! Ez nyilvánvalóan nem a kívánt viselkedés. Lássuk, hogyan lehet ezt megjavítani.

3. Az Alkészlet attribútum használata

A korábbi műveletek az összes oszlop alapján csökkentek, amikor a tengely = 0. Mivel létezik az Alapító oszlop, amelynek csak nulla értékei vannak, az összes sor leesik. Adjuk meg a szűréshez használni kívánt oszlopot:

Kód:

In (7): df.dropna(axis=0, subset=('NetWorth ($ bn)'))

Kimenet:

Out(7):
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
3 Directi 22 1.3 NaN India

Most, amint látjuk, csak a Networth oszlopban található Nanvalue rekordok esnek vissza. A visszaküldött DataFrame újra módosítható a dropna () alkalmazásával, hogy kiszűrje az oszlopokat az 1. tengely áthaladásával.

4. A How Parameter használata

Alapértelmezés szerint a dropna () a teljes sort / oszlopot eldobja akkor is, ha csak 1 érték hiányzik. Egy gyorsan megszólaltatható oldal csak akkor eshet le, ha egy sor / oszlop összes értéke nulla. Ezt úgy lehet elérni, hogy hogyan = 'összes', és nem = 'bármelyik' (az alapértelmezett viselkedés) állítja be.

Kód:

In (8): df.dropna(axis=1, how='all')

Kimenet:

Out(8):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Most az eredményül kapott DataFrame használható bonyolultabb logikával rendelkező sorok / oszlopok eldobására, ha szükséges.

5. Az irányítás megszerzése a Thresh segítségével

A thresh paraméter valószínűleg a legerősebb eszköz, ha megfelelően kombináljuk a többi eszközzel.

Kód:

In (17): df.dropna(axis=1, thresh=2)

Kimenet:

Out(17):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

A tengely = 1 és a küszöb = 2 beállításával csak azokat az oszlopokat kell megtartani, amelyek legalább 2 nem NaN-értékkel rendelkeznek.

Következtetés

A fentebb bemutatott példák jellegénél fogva egyszerűek, mégis elég erősek ahhoz, hogy megbirkózzanak a problémák többségével, amelyekre a valós helyzetekben ütközhetnek. Ennek ellenére gyakorolni kell a különféle paraméterek kombinálását, hogy kristálytiszta megértésük legyen a használatukról és az alkalmazás sebességéről.

Ajánlott cikkek

Ez egy útmutató a Pandas.Dropna () -hoz. Itt megvitatjuk, mi a Pandas.Dropna (), a paramétereket és a példákat. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-

  1. Mi az a Panda?
  2. NLP Pythonban
  3. Absztrakt osztály Pythonban
  4. Faktérium a Pythonban
  5. Faktorialis program a JavaScript-ben

Kategória: