Введение в 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 (), параметры и примеры. Вы также можете просмотреть другие наши статьи, чтобы узнать больше-
- Что такое панды
- НЛП в Python
- Абстрактный класс в Python
- Факториал в Python
- Факториал Программа в JavaScript