Вступ до Pandas.Dropna ()

Бібліотека з відкритим кодом Python Pandas, безсумнівно, є найбільш широко використовуваною бібліотекою для вивчення даних та аналізу даних. Це також кращий пакет для спеціальних операцій з обробки даних. Заслуга кредитів полягає у надзвичайно гнучкому представленні даних за допомогою DataFrames та арсеналу функцій, що піддаються маніпулюванню даними, наявними в цих кадрах даних. Будь-які проблеми з даними в реальному житті призведуть до видачі відсутніх даних, і обов'язково належним чином буде опікуватися такими точками даних. Ця функція підтримується функцією Pandas.Dropna () .

Що саме таке Pandas.Dropna ()?

Сторінку Pydata можна віднести для офіційного визначення функції.

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

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

Параметри (за винятком self, (сам об'єкт кадру даних)), показані у визначенні функції, є такими:

  • вісь: вона посилається на орієнтацію (рядок або стовпець), в яку потрапляють дані. Можливі значення - 0 або 1 (також "індекс" або "стовпці" відповідно). 0 / "індекс" являє собою рядки, що випадають, а 1 / "стовпці" являють собою випадаючі стовпці.
  • як: Вказує сценарій, у якому стовпець / рядок, що містить нульове значення, повинен бути відхилений. Значення "будь-які" або "всі". "all" випадає рядка / стовпця, лише якщо всі значення в рядку / стовпці є нульовими. 'будь-який' видаляє рядок / стовпець, коли принаймні одне значення рядка / стовпця є нульовим.
  • thresh: Вказує мінімальну кількість значень, що не належать до NA, у рядку / стовпці, щоб воно було враховано у кінцевому результаті. Будь-який рядок / стовпець із числом значень, що не належать до NA, <значення thresh, видаляється незалежно від інших переданих параметрів. Коли thresh = немає, цей фільтр ігнорується.
  • підмножина: ось визначає, чи потрібно скидати рядки / стовпці. підмножина містить список стовпців / рядків відповідно (протилежно осі), в яких слід шукати значення null / 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', а не how = '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, мабуть, є найпотужнішим інструментом у відповідній комбінації з рештою.

Код:

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