Introducere în Pandas.Dropna ()

Pandas-ul de bibliotecă open-source Python este, fără îndoială, cea mai utilizată bibliotecă pentru știința și analiza datelor. Este, de asemenea, un pachet preferat pentru operațiunile de manipulare a datelor ad-hoc. Creditul se îndreaptă către reprezentarea sa extrem de flexibilă de date folosind DataFrames și arsenalul de funcții expuse manipulării datelor prezente în aceste cadre de date. Orice probleme de viață reală vor cauza apariția datelor care lipsesc și este imperativ ca astfel de puncte să fie îngrijite în mod corect. Gestionarea datelor lipsă în orice mod adecvat este susținută de această funcție, Pandas.Dropna () .

Ce sunt exact Pandas.Dropna ()?

Pagina Pydata poate fi trimisă pentru definiția funcției oficiale.

Antetul funcției prezentat este următorul (împreună cu valorile implicite ale parametrilor):

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

Parametrii (cu excepția de sine (obiectul cadru de date în sine) afișate în definiția funcției sunt următoarele:

  • axa: se referă la orientarea (rândul sau coloana) în care sunt abandonate datele. Valorile posibile sunt 0 sau 1 (de asemenea, respectiv „index” sau „coloane”). 0 / 'index' reprezintă rândurile care se scad și 1 / 'coloane' reprezintă coloane care se încadrează.
  • cum: Specifică scenariul în care coloana / rândul care conține valoare nulă trebuie abandonată. Valorile sunt „oricare” sau „toate”. „toate” renunță la rând / coloană numai dacă toate valorile din rând / coloană sunt nule. „orice” renunță la rând / coloană atunci când cel puțin o valoare din rând / coloană este nulă.
  • treci: specifică numărul minim de valori non-NA în rând / coloană pentru ca acesta să fie considerat în rezultatul final. Orice rând / coloană cu numărul de valori non-NA <valoarea de trecere este eliminat indiferent de alți parametri trecuți. Când trec = niciunul, acest filtru este ignorat.
  • subset: axis specifică dacă rândurile / coloanele trebuie abandonate. subsetul are o listă de coloane / rânduri respectiv (opusă axei) care trebuie căutate pentru valori nule / NA în loc de o listă întreagă de coloane / rânduri respectiv.
  • inplace: Ca o bună practică, DataFrame original (sau reprezentarea datelor) nu este modificată, dar este returnată o copie separată cu modificările (adică rânduri / coloane abandonate). inplace atribut vă oferă flexibilitatea de a modifica structura de date originală însăși.

Acum că avem o idee generală a parametrilor expuși de dropna (), să vedem câteva scenarii posibile ale datelor lipsă și modul în care le abordăm.

Exemple de cazuri de utilizare ale Pandas.Dropna ()

Mai jos sunt exemplele pandas.dropna ():

Import panda: Pentru a utiliza Dropna (), trebuie să existe un DataFrame. Pentru a crea un DataFrame, biblioteca panda trebuie să fie importată (nicio surpriză aici). Îl vom importa cu un alias pd pentru a face obiecte de referință în mod convenabil. Pentru definirea valorilor nule, vom rămâne la numpy.nan. Astfel vom importa biblioteca numpy cu un np alias:

Cod:

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

1. Creați un obiect DataFrame pentru manipulare

La importul de panda, toate metodele, funcțiile și constructorii sunt disponibili în spațiul de lucru. Așadar, să creăm un DataFrame care ne poate ajuta să demonstrăm utilizările dropna ().

Cod:

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

DataFrame tipărit va fi manipulat în demonstrația noastră de mai jos.

2. Renunțarea la rânduri față de coloane

Parametrul axei este folosit pentru a renunța la rânduri sau coloane așa cum se arată mai jos:

Cod:

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

ieşire:

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

Orice coloană care conține cel puțin 1 NaN ca valoare de celulă este scăzută. Să vedem cum vor funcționa rândurile (axa = 0).
Notă : Acesta este comportamentul implicit atunci când axa nu este specificată explicit.

Cod:

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

ieşire:

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

Hmm, deci nu mai există date în DataFrame returnat! În mod evident, acesta nu este comportamentul prevăzut. Să vedem cum să remediați acest lucru.

3. Utilizarea Atributului subsetului

Operațiunile anterioare scădeau pe baza tuturor coloanelor atunci când axa = 0. Deoarece există un fondator de coloane care are doar valori nule, toate rândurile sunt eliminate. Să specificăm o coloană care va fi utilizată pentru filtrare:

Cod:

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

ieşire:

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

Acum, după cum vedem, sunt înregistrate doar înregistrările cu Nanvalue în coloana Networth. DataFrame returnat poate fi din nou modificat, aplicând din nou dropna () pentru a filtra coloanele trecând pe axa = 1.

4. Utilizarea parametrului Cum

În mod implicit, dropna () renunță la rândul / coloana completă chiar dacă lipsește doar 1 valoare. O latură rapidă expusă este scăzută doar atunci când toate valorile dintr-un rând / coloană sunt nule. Acest lucru se realizează prin setarea how = 'all' în loc de how = 'any' (comportamentul implicit).

Cod:

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

ieşire:

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

Acum, DataFrame rezultat poate fi utilizat pentru eliminarea rândurilor / coloanelor cu o logică mai complexă, dacă este necesar.

5. Obținerea controlului prin prag

Parametrul de treiere, este probabil cel mai puternic instrument atunci când este combinat cu restul în mod corespunzător.

Cod:

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

ieşire:

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

Prin setarea axei = 1 și treierului = 2, se păstrează doar acele coloane cu cel puțin 2 valori non-NaN.

Concluzie

Exemplele prezentate mai sus sunt de natură simplistă, dar sunt suficient de puternice pentru a face față majorității problemelor pe care le poți confunda în situații din viața reală. Cu toate acestea, ar trebui să exersăm combinarea diferiților parametri pentru a înțelege clar modul de utilizare a acestora și pentru a construi viteza în aplicarea lor.

Articole recomandate

Acesta este un ghid pentru Pandas.Dropna (). Aici vom discuta despre ce este Pandas.Dropna (), parametrii și exemplele. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Ce este Pandas
  2. NLP în Python
  3. Clasă abstractă în Python
  4. Factorial în Python
  5. Programul factorial în JavaScript