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

Библиотека с открытым исходным кодом Python Pandas, несомненно, является наиболее широко используемой библиотекой для анализа и анализа данных. Это также предпочтительный пакет для специальных операций с данными. Преимущество заключается в его чрезвычайно гибком представлении данных с использованием DataFrames и арсенала функций, доступных для манипулирования данными, присутствующими в этих Data Frames. Любые реальные проблемы с данными вызовут проблему пропущенных данных, и крайне важно, чтобы о таких точках данных заботились правильно. Эта функция, Pandas.Dropna (), поддерживает обработку пропущенных данных любым удобным способом .

Что такое Pandas.Dropna ()?

Страница Pydata может быть передана для официального определения функции.

Заголовок функции показан ниже (вместе со значениями параметров по умолчанию):

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

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

  • ось: относится к ориентации (строка или столбец), в которой отбрасываются данные. Возможные значения: 0 или 1 (также «индекс» или «столбцы» соответственно). 0 / 'index' представляет отбрасываемые строки, а 1 / 'columns' представляет отбрасываемые столбцы.
  • how: Указывает сценарий, в котором столбец / строка, содержащая нулевое значение, должна быть удалена. Значения «любые» или «все». 'all' удаляет строку / столбец, только если все значения в строке / столбце равны нулю. «any» удаляет строку / столбец, когда хотя бы одно значение в строке / столбце равно нулю.
  • thresh: Определяет минимальное количество не-значений NA в строке / столбце, чтобы оно учитывалось в конечном результате. Любая строка / столбец с количеством значений не-NA <значение порога удаляется независимо от других переданных параметров. Когда thresh = none, этот фильтр игнорируется.
  • subset: axis указывает, должны ли быть удалены строки / столбцы. подмножество принимает список столбцов / строк соответственно (напротив оси), в которых нужно искать значения null / NA вместо полного списка столбцов / строк соответственно.
  • на месте: в качестве хорошей практики исходный 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. Сбрасываемые строки против столбцов

Параметр axis используется для удаления строк или столбцов, как показано ниже:

Код:

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

Выход:

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

Любой столбец, содержащий не менее 1 NaN в качестве значения ячейки, удаляется. Посмотрим, как будут работать строки (axis = 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

Параметр 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

При установке axis = 1 и thresh = 2 сохраняются только те столбцы, которые имеют не менее 2 значений, отличных от NaN.

Вывод

Приведенные выше примеры являются упрощенными по своей природе, но достаточно мощными, чтобы справиться с большинством проблем, с которыми вы можете столкнуться в реальных ситуациях. Тем не менее, нужно практиковаться в комбинировании различных параметров, чтобы иметь кристально четкое представление об их использовании и скорости сборки в своих приложениях.

Рекомендуемые статьи

Это руководство к Пандам. Дропна (). Здесь мы обсудим, что такое Pandas.Dropna (), параметры и примеры. Вы также можете просмотреть другие наши статьи, чтобы узнать больше-

  1. Что такое панды
  2. НЛП в Python
  3. Абстрактный класс в Python
  4. Факториал в Python
  5. Факториал Программа в JavaScript