Въведение в Pandas.Dropna ()

Библиотеката с отворен код Pandas на Python несъмнено е най-широко използваната библиотека за наука и анализ на данни. Освен това е за предпочитане пакет за операции за манипулиране на данни ad hoc. Кредитът е за изключително гъвкавото му представяне на данни, използвайки DataFrames и арсенала от функции, изложени на манипулиране на данни, присъстващи в тези рамки от данни. Всякакви проблеми с данните в реалния живот ще доведат до изпускане на липсващи данни и е наложително тези пунктове да се погрижат по правилния начин. Работата с липсващи данни по подходящ начин се поддържа от тази функция, Pandas.Dropna () .

Какво точно представляват Pandas.Dropna ()?

Страницата на Pydata може да бъде отнесена за официалното определение на функцията.

Показаната заглавна функция е както следва (заедно със стойностите на параметрите по подразбиране):

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

Параметрите (с изключение на самостоятелно (самият обект на рамка от данни)), показани в дефиницията на функцията, са както следва:

  • ос: Отнася се за ориентацията (ред или колона), в която данните са изпуснати. Възможните стойности са 0 или 1 (също съответно „индекс“ или „колони“). 0 / 'index' представлява отпадащи редове, а 1 / 'колони' представляват изпускащи колони.
  • как: Посочва сценария, при който колоната / редът, съдържащ нулева стойност, трябва да бъде изпусната. Стойностите са „всички“ или „всички“. „всички“ пускат реда / колоната само ако всички стойности в реда / колоната са нулеви. 'any' изпуска реда / колоната, когато поне една стойност в ред / колона е нула.
  • thresh: Посочва минималния брой стойности, различни от NA в ред / колона, за да може да бъде отчетен в крайния резултат. Всеки ред / колона с броя на стойностите, различни от NA <thresh value, се премахва, независимо от други приети параметри. Когато thresh = няма, този филтър се игнорира.
  • подмножество: ос определя дали редовете / колоните трябва да бъдат пуснати. подмножеството включва списък със съответно колони / редове (противоположни на оста), които трябва да се търсят за нулеви / NA стойности, вместо за цял списък съответно колони / редове.
  • inplace: Като добра практика оригиналният DataFrame (или представяне на данни) не се променя, а се връща отделно копие с промените (т.е. пуснати редове / колони). атрибут inplace ви дава гъвкавост да променяте самата оригиналната структура на данните.

Сега, когато имаме обща представа за параметрите, изложени от dropna (), нека да видим някои възможни сценарии на липсващи данни и как да се справим с тях.

Примерни случаи на използване на Pandas.Dropna ()

По-долу са примерите на pandas.dropna ():

Импортиране на панди: За да използвате Dropna (), трябва да има DataFrame. За да създадете DataFrame, библиотеката на пандата трябва да бъде импортирана (тук няма изненада). Ще го импортираме с псевдоним pd, за да препращаме удобно обекти под модула. За определяне на нулеви стойности ще се придържаме към numpy.nan. По този начин ще импортираме numpy библиотеката с псевдоним np:

Код:

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

1. Създайте обект на DataFrame за манипулиране

При импортиране на панди всички методи, функции и конструктори са достъпни в работното ви пространство. Така че нека създадем DataFrame, който може да ни помогне в демонстрацията на използване на dropna ().

Код:

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 ще бъде манипулирана в нашата демонстрация по-долу.

2. Пускане на редове срещу колони

Параметърът на оста се използва за пускане на редове или колони, както е показано по-долу:

Код:

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

изход:

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

Всяка колона, съдържаща най-малко 1 NaN като стойност на клетката е отпаднала. Нека да видим как ще работят редовете (ос = 0).
Забележка : Това е поведението по подразбиране, когато оста не е изрично посочена.

Код:

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

изход:

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

Хм, така че вече няма данни във върнатата DataFrame! Това очевидно не е предвиденото поведение. Нека да видим как да поправим това.

3. Използване на подмножеството атрибут

Предишните операции отпадаха въз основа на всички колони, когато ос = 0. Тъй като има основател на колона, който има само нулеви стойности, всички редове са изпуснати. Нека да определим колона, която да се използва за филтриране:

Код:

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

изход:

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

Сега, както виждаме, отпадат само записи с Nanvalue в колоната Networth. Върнатият DataFrame може отново да бъде променен чрез прилагане на dropna () за пореден път за филтриране на колони, като преминава ос = 1.

4. Използване на Параметър как

По подразбиране dropna () пуска целия ред / колона, дори ако липсва само 1 стойност. Бързо изложената страна на обръщане е да падне само когато всички стойности в ред / колона са нулеви. Това се постига чрез задаване на how = 'all', вместо как = 'any' (поведение по подразбиране).

Код:

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

изход:

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

Сега получената DataFrame може да се използва за изпускане на редове / колони с по-сложна логика, ако е необходимо.

5. Получаване на контрол чрез Thresh

Параметърът thresh, вероятно е най-мощният инструмент, когато се комбинира подходящо с останалите.

Код:

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

изход:

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

Чрез задаване на ос = 1 и thresh = 2 се запазват само онези колони с най-малко 2 стойности, различни от NaN.

заключение

Примерите, показани по-горе, имат опростен характер, но са достатъчно мощни, за да се справят с по-голямата част от проблемите, в които може да се натъкнете в реални ситуации. Не по-малко, трябва да практикувате комбиниране на различни параметри, за да имате кристално ясно разбиране за тяхното използване и скорост на изграждане в приложението им.

Препоръчителни статии

Това е ръководство за Pandas.Dropna (). Тук обсъждаме какво е Pandas.Dropna (), параметрите и примерите. Можете също да разгледате и другите ни свързани статии, за да научите повече-

  1. Какво е Панда
  2. NLP в Python
  3. Абстрактен клас по Python
  4. Факториал в Python
  5. Факторна програма в JavaScript