Introduksjon til Pandas.Dropna ()

Pythons åpen kildekodebibliotek Pandas er utvilsomt det mest brukte biblioteket for datavitenskap og analyse. Det er også en foretrukket pakke for ad-hoc-data-manipulasjonsoperasjoner. Kreditten går til sin ekstremt fleksible datarepresentasjon ved bruk av DataFrames og arsenalet av funksjoner utsatt for å manipulere data som er til stede i disse datarammene. Eventuelle dataproblemer i virkeligheten vil føre til utgivelse av manglende data, og det er viktig at slike datapunkter blir ivaretatt på riktig måte. Håndtering av manglende data på en hvilken som helst passende måte støttes av denne funksjonen, Pandas.Dropna () .

Hva er Pandas.Dropna ()?

Pydata-side kan henvises for den offisielle funksjonsdefinisjonen.

Funksjonens overskrift vises som følger (sammen med standardparameterverdiene):

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

Parametrene (ekskluderende, selv (selve datarammeobjektet)) vist i funksjonsdefinisjonen er som følger:

  • akse: Det refererer til retningen (rad eller kolonne) som data slippes i. Mulige verdier er 0 eller 1 (også henholdsvis 'indeks' eller 'kolonner'). 0 / 'indeks' representerer slipprader og 1 / 'kolonner' representerer slippkolonner.
  • hvordan: Angir scenariet der kolonnen / raden som inneholder nullverdi, skal slippes. Verdiene er 'alle' eller 'alle'. 'alle' slipper bare raden / kolonnen hvis alle verdiene i rekken / kolonnen er null. 'any' slipper raden / kolonnen når minst en verdi i rad / kolonne er null.
  • terskel: Angir minimum antall ikke-NA-verdier i rad / kolonne for at det skal bli vurdert i det endelige resultatet. Enhver rad / kolonne med antall ikke-NA-verdier <terskelverdi fjernes uavhengig av andre passerte parametere. Når terskel = ingen, ignoreres dette filteret.
  • delmengde: akse spesifiserer om rader / kolonner må droppes. delsett tar en liste over henholdsvis kolonner / rader (motsatt av aksen) som skal søkes etter henholdsvis null / NA-verdier i stedet for en hel liste med kolonner / rader.
  • stedet: Som en god praksis blir ikke den opprinnelige DataFrame (eller datarepresentasjon) endret, men en egen kopi med endringene (dvs. nedlagte rader / kolonner) returneres. inplace attributt gir deg fleksibiliteten til å endre den opprinnelige datastrukturen.

Nå som vi har en generell ide om parametrene eksponert av dropna (), la oss se noen mulige scenarier med manglende data og hvordan vi takler dem.

Eksempel Bruk-tilfeller av Pandas.Dropna ()

Nedenfor er eksemplene på pandas.dropna ():

Importer pandaer: For å bruke Dropna (), må det være en DataFrame. For å lage en DataFrame, må pandas bibliotek importeres (ingen overraskelse her). Vi importerer den med et alias pd for å referere til objekter under modulen på en enkel måte. For å definere nullverdier, vil vi holde oss til numpy.nan. Dermed vil vi importere numpy-biblioteket med et alias np:

Kode:

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

1. Lag et DataFrame-objekt for manipulering

Når du importerer pandaer, er alle metoder, funksjoner og konstruktører tilgjengelige i arbeidsområdet ditt. Så la oss lage en DataFrame som kan hjelpe oss med å demonstrere bruk av 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

Den trykte DataFrame vil bli manipulert i demonstrasjonen vår nedenfor.

2. Slippe rader vs kolonner

Akseparameteren brukes til å slippe rader eller kolonner som vist nedenfor:

Kode:

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

Produksjon:

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

Enhver kolonne som inneholder minst 1 NaN som celleverdi, faller. La oss se hvordan rader (akse = 0) vil fungere.
Merk : Dette er standardoppførselen når aksen ikke er spesifikt spesifisert.

Kode:

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

Produksjon:

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

Hmm, så det er ingen data i den returnerte DataFrame lenger! Dette er åpenbart ikke den tiltenkte oppførselen. La oss se hvordan vi løser dette.

3. Bruke delmengdeattributtet

Tidligere operasjoner droppet basert på alle kolonnene når aksen = 0. Siden det er en grunnlegger av kolonnen som bare har nullverdier, slettes alle radene. La oss spesifisere en kolonne som skal brukes til filtrering:

Kode:

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

Produksjon:

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

Nå, som vi ser, blir bare poster med Nanvalue i Networth-kolonnen droppet. Det returnerte DataFrame kan igjen endres ved å bruke dropna () igjen for å filtrere ut kolonner ved å passere akse = 1.

4. Bruke hvordan parameter

Som standard slipper dropna () hele raden / kolonnen selv om bare 1 verdi mangler. En rask eksponering på baksiden er bare å slippe når alle verdiene i en rad / kolonne er null. Dette oppnås ved å angi hvordan = 'alle' i stedet for hvordan = 'noen' (standardoppførselen).

Kode:

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

Produksjon:

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

Nå kan den resulterende DataFrame brukes til å slippe rader / kolonner med en mer kompleks logikk om nødvendig.

5. Få kontroll gjennom terskel

Terskeparameteren er sannsynligvis det kraftigste verktøyet når det kombineres med resten på riktig måte.

Kode:

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

Produksjon:

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 å stille inn akse = 1 og terskel = 2, beholdes bare de kolonnene med minst 2 ikke-NaN-verdier.

Konklusjon

Eksemplene vist over er forenklede, men er likevel kraftige nok til å takle de fleste av problemene du kan snuble i situasjoner i det virkelige liv. Ikke desto mindre bør man øve seg på å kombinere forskjellige parametere for å ha en krystallklar forståelse av bruken og byggehastigheten i bruken.

Anbefalte artikler

Dette er en guide til Pandas.Dropna (). Her diskuterer vi hva som er Pandas.Dropna (), parametrene og eksemplene. Du kan også gå gjennom andre relaterte artikler for å lære mer-

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