Introduktion til Pandas.Dropna ()

Pythons open source-bibliotek Pandas er uden tvivl det mest udbredte bibliotek til datavidenskab og analyse. Det er også en foretrukken pakke til ad-hoc-datamanipulation. Kreditten går til dens ekstremt fleksible datarepresentation ved hjælp af DataFrames og arsenalet af funktioner, der udsættes for at manipulere data, der findes i disse datarammer. Eventuelle dataproblemer i virkeligheden vil medføre, at der mangler data, og det er bydende nødvendigt, at sådanne datapunkter tages hånd om på den rigtige måde. Håndtering af manglende data på enhver passende måde understøttes af denne funktion, Pandas.Dropna () .

Hvad er Pandas.Dropna () nøjagtigt?

Pydata-side kan henvises til den officielle funktionsdefinition.

Det viste funktionshoved er som følger (sammen med standardparameterværdierne):

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

Parametrene (eksklusive, selv (selve datarammeobjektet)) vist i funktionsdefinitionen er som følger:

  • akse: Det henviser til den retning (række eller kolonne), hvor data slettes. Mulige værdier er 0 eller 1 (også henholdsvis 'indeks' eller 'kolonner'). 0 / 'indeks' repræsenterer faldende rækker, og 1 / 'kolonner' repræsenterer faldende kolonner.
  • hvordan: Angiver det scenarie, hvor kolonnen / rækken, der indeholder nulværdi, skal slettes. Værdierne er 'alle' eller 'alle'. 'alle' slipper kun rækken / kolonnen, hvis alle værdierne i rækken / kolonnen er nul. 'enhver' falder rækken / kolonnen, når mindst en værdi i række / kolonne er null.
  • tærskel: Specificerer det mindste antal ikke-NA-værdier i række / kolonne, for at det kan tages i betragtning i det endelige resultat. Enhver række / søjle med antallet af ikke-NA-værdier <tærskelværdi fjernes uanset hvilke andre parametre der er bestået. Når tærskel = ingen ignoreres dette filter.
  • delmængde: akse specificerer, om rækker / kolonner skal droppes. delmængden tager en liste over henholdsvis kolonner / rækker (modsat aksen), der skal søges efter henholdsvis null / NA-værdier i stedet for en hel liste med kolonner / rækker.
  • i stedet: Som en god praksis ændres den originale DataFrame (eller datarepresentation) ikke, men en separat kopi med ændringerne (dvs. faldne rækker / kolonner) returneres. inplace attribut giver dig fleksibiliteten til at ændre den originale datastruktur.

Nu hvor vi har en generel idé om de parametre, der er eksponeret af dropna (), lad os se nogle mulige scenarier med manglende data, og hvordan vi tackle dem.

Eksempel Brug-tilfælde af Pandas.Dropna ()

Herunder er eksemplerne på pandas.dropna ():

Importer pandaer: For at bruge Dropna () skal der være en DataFrame. For at oprette en DataFrame skal pandas bibliotek importeres (ingen overraskelse her). Vi importerer det med et alias pd for nemt at referere til objekter under modulet. For at definere nulværdier, vil vi holde os til numpy.nan. Således importerer vi det numpiske bibliotek med et alias np:

Kode:

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

1. Opret et DataFrame-objekt til manipulation

Ved import af pandaer er alle metoder, funktioner og konstruktører tilgængelige i dit arbejdsområde. Så lad os oprette en DataFrame, der kan hjælpe os med at demonstrere anvendelser af dropna ().

Kode:

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

Det trykte DataFrame manipuleres i vores demonstration nedenfor.

2. Slippe rækker vs kolonner

Akse-parameteren bruges til at slippe rækker eller kolonner som vist nedenfor:

Kode:

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

Produktion:

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

Enhver søjle, der indeholder mindst 1 NaN som celleværdi, falder. Lad os se, hvordan rækker (akse = 0) fungerer.
Bemærk : Dette er standardopførselen, når aksen ikke er specifikt specificeret.

Kode:

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

Produktion:

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

Hmm, så der er ingen data i den returnerede DataFrame længere! Dette er åbenlyst ikke den tilsigtede adfærd. Lad os se, hvordan vi løser dette.

3. Brug af subsetattributten

Tidligere operationer faldt baseret på alle kolonner, når aksen = 0. Da der er en grundlægger af kolonnen, der kun har nulværdier, slettes alle rækker. Lad os specificere en kolonne, der skal bruges til filtrering:

Kode:

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

Produktion:

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

Som vi ser, er kun poster med Nanvalue i Networth-kolonnen tabt. Det returnerede DataFrame kan igen ændres ved at anvende dropna () igen for at filtrere kolonner ud ved at passere akse = 1.

4. Brug af How Parameter

Som standard slipper dropna () den komplette række / kolonne, selvom der kun mangler 1 værdi. En hurtig eksponering med flip-side er kun at droppe, når alle værdier i en række / søjle er nul. Dette opnås ved at indstille hvordan = 'alle' i stedet for hvordan = 'nogen' (standardadfærd).

Kode:

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

Produktion:

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

Nu kan den resulterende DataFrame bruges til at droppe rækker / kolonner med en mere kompleks logik om nødvendigt.

5. Få kontrol gennem tærskel

Tærskelparameteren er sandsynligvis det mest kraftfulde værktøj, når det kombineres med resten på passende måde.

Kode:

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

Produktion:

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

Ved at indstille akse = 1 og tærskel = 2, bevares kun de kolonner med mindst 2 ikke-NaN-værdier.

Konklusion

Eksemplerne vist ovenfor er forenklede, men er alligevel kraftige nok til at tackle de fleste af de problemer, du måtte snuble i i det virkelige liv. Ikke desto mindre skal man øve sig på at kombinere forskellige parametre for at have en krystalklar forståelse af deres brug og opbygningshastighed i deres anvendelse.

Anbefalede artikler

Dette er en guide til Pandas.Dropna (). Her diskuterer vi, hvad der er Pandas.Dropna (), parametrene og eksemplerne. Du kan også gennemgå vores andre relaterede artikler for at lære mere-

  1. Hvad er Pandas
  2. NLP i Python
  3. Abstrakt klasse i Python
  4. Factorial i Python
  5. Factorial-program i JavaScript

Kategori: