- pandas.DataFrame.dropna#
- Pandas dropna(): Drop Missing Records and Columns in DataFrames
- Understanding the Pandas dropna() Method
- Как удалить строки с NaN или отсутствующими значениями в Pandas DataFrame
- Null или NaN или отсутствующие значения в Pandas DataFrame
- Методы удаления строк с NaN или отсутствующими значениями в Pandas DataFrame
- Отбросьте все строки с NaN или отсутствующим значением в Pandas Dataframe.
- Отбросьте строки, содержащие NaN или отсутствующие значения в определенном столбце в Pandas Dataframe.
- Удаление строк с NaN или отсутствующими значениями на основе нескольких условий в Pandas Dataframe
- Удаление строк с NaN или отсутствующими значениями на основе порогового значения в Pandas Dataframe
- Зачем отбрасывать NaN или отсутствующие значения в DataFrame в Python
- Заключение
pandas.DataFrame.dropna#
See the User Guide for more on which values are considered missing, and how to work with missing data.
Parameters axis , default 0
Determine if rows or columns which contain missing values are removed.
- 0, or ‘index’ : Drop rows which contain missing values.
- 1, or ‘columns’ : Drop columns which contain missing value.
Pass tuple or list to drop on multiple axes. Only a single axis is allowed.
how , default ‘any’
Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
- ‘any’ : If any NA values are present, drop that row or column.
- ‘all’ : If all values are NA, drop that row or column.
Require that many non-NA values. Cannot be combined with how.
subset column label or sequence of labels, optional
Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include.
inplace bool, default False
Whether to modify the DataFrame rather than creating a new one.
ignore_index bool, default False
If True , the resulting axis will be labeled 0, 1, …, n — 1.
DataFrame with NA entries dropped from it or None if inplace=True .
Indicate existing (non-missing) values.
>>> df = pd.DataFrame("name": ['Alfred', 'Batman', 'Catwoman'], . "toy": [np.nan, 'Batmobile', 'Bullwhip'], . "born": [pd.NaT, pd.Timestamp("1940-04-25"), . pd.NaT]>) >>> df name toy born 0 Alfred NaN NaT 1 Batman Batmobile 1940-04-25 2 Catwoman Bullwhip NaT
Drop the rows where at least one element is missing.
>>> df.dropna() name toy born 1 Batman Batmobile 1940-04-25
Drop the columns where at least one element is missing.
>>> df.dropna(axis='columns') name 0 Alfred 1 Batman 2 Catwoman
Drop the rows where all elements are missing.
>>> df.dropna(how='all') name toy born 0 Alfred NaN NaT 1 Batman Batmobile 1940-04-25 2 Catwoman Bullwhip NaT
Keep only the rows with at least 2 non-NA values.
>>> df.dropna(thresh=2) name toy born 1 Batman Batmobile 1940-04-25 2 Catwoman Bullwhip NaT
Define in which columns to look for missing values.
>>> df.dropna(subset=['name', 'toy']) name toy born 1 Batman Batmobile 1940-04-25 2 Catwoman Bullwhip NaT
Pandas dropna(): Drop Missing Records and Columns in DataFrames
In this tutorial, you’ll learn how to use the Pandas dropna() method to drop missing values in a Pandas DataFrame. Working with missing data is one of the essential skills in cleaning your data before analyzing it. Because data cleaning can take up to 80% of a data analyst’s / data scientist’s time, being able to do this work effectively and efficiently is an important skill.
By the end of this tutorial, you’ll have learned:
- How to use the Pandas .dropna() method effectively
- How to drop rows missing (NaN) values in Pandas
- How to drop columns missing (NaN) values in Pandas
- How to use the Pandas .dropna() method only on specific columns
- How to set thresholds when dropping missing values in a Pandas DataFrame
- How to fix common errors when working with the Pandas .dropna() method
Understanding the Pandas dropna() Method
The Pandas .dropna() method is an essential method for a data analyst or data scientist of any level. Because cleaning data is an essential preprocessing step, knowing how to work with missing data will make you a stronger programmer.
Before diving into how to use the method, let’s take a minute to understand how the Pandas .dropna() method works. We can do this by taking a look at the parameters and default arguments that method provides:
# Understanding the Pandas .dropna() Method import pandas as pd df = pd.DataFrame() df.dropna( axis=0, how='any', thresh=None, subset=None, inplace=False )
We can see that the Pandas .dropna() method offers five different parameters. All of these parameters have default arguments provided. This means that you can simply call the method and it will execute.
However, understanding what the different parameters do will ensure that you get the result you’re hoping for! Let’s break these parameters down a little further:
Как удалить строки с NaN или отсутствующими значениями в Pandas DataFrame
В этом руководстве по Python Pandas мы изучим такие темы, как значения NaN и как их удалить строки со значениями NaN в Pandas DataFrame. Кроме того, мы также получаем четкое представление о зачем отбрасывать значения NaN в DataFrame в Питоне.
Кроме того, в этом руководстве по Python мы также рассмотрим следующие темы:
- Небольшое введение в Null или NaN или отсутствующие значения в Pandas DataFrame в Python
- Методы удаления строк с NaN или отсутствующими значениями в Pandas DataFrame
- Отбросьте все строки, в которых есть NaN или отсутствующее значение.
- Удалить строки, содержащие NaN или отсутствующие значения в определенном столбце
- Удаление строк с NaN или отсутствующими значениями на основе нескольких условий
- Удаление строк с NaN или отсутствующими значениями на основе порогового значения
Null или NaN или отсутствующие значения в Pandas DataFrame
В Pandas NaN — это отсутствующее значение по умолчанию. И отсутствующие значения здесь могут быть обозначены разными именами, такими как NaN, None, Null и т. д.…
Многие из реальных наборов данных содержат пропущенные значения в некоторых ячейках. И это может быть связано с тем, что пользователь не ввел некоторые значения ячеек при заполнении формы, или может быть много причин отсутствия значений в DataFrame.
Если пропущенных значений меньше, т.е. около 5 процентов строк имеют отсутствующие значения в нашем наборе данных, тогда мы можем просто удалить строки. Чтобы углубиться в это, давайте создадим DataFrame для дальнейшего анализа в Python.
Создайте Pandas DataFrame с NaN или отсутствующими значениями в нем
Давайте создадим наш собственный Pandas DataFrame с несколькими строками и значениями NaN в нем.
Здесь Мы создали словарь данных пациентов, в котором есть имена пациентов, их возраст, пол и заболевания, которыми они страдают. А позже передается в «pandas.DataFrame», чтобы преобразовать его в DataFrame или таблицу, то есть в виде строк и столбцов.
# Import necessary libraries import numpy as np import pandas as pd #Create a dictionary which has names of the patients, their ages, and the diseases data_dict= <"Patient":["Kelvin", "John", "smith", "Robin","Williams","Nick","Anyy","Messi","Jonas","Xavier"], "Age":[np.nan,71,67,8,56,12,31,3,np.nan,17], "Gender":[np.nan,np.nan,np.nan,np.nan,np.nan,"Male","Male",np.nan,np.nan,np.nan], "Diesease":[np.nan ,"Heart Attack","Cancer",np.nan,"Heart Attack","Brain Stroke","Acidity", np.nan,"Brain Stroke","Skin Cancer"], >#Create a DataFrame using Pandas Patients_data=pd.DataFrame(data_dict) Patients_data
На приведенном ниже выходном изображении мы видим, что почти все значения ячеек в столбце «Пол» являются NaN или отсутствуют, а также есть некоторые отсутствующие значения в столбцах «болезнь» и «возраст».
Таким образом, мы можем создать наш Pandas DataFrame, который можно использовать для дальнейшего анализа в Python.
Методы удаления строк с NaN или отсутствующими значениями в Pandas DataFrame
В Python есть разные методы, которые помогают нам удалять строки с NaN или отсутствующими значениями в Pandas DataFrame. Здесь мы увидим все возможные варианты удаления строк с NaN или отсутствующими значениями вместе с примерами в Pandas DataFrame в Python. Методы:
- Отбросьте все строки, в которых есть NaN или отсутствующее значение.
- Удалить строки, содержащие NaN или отсутствующие значения в определенном столбце
- Удаление строк с NaN или отсутствующими значениями на основе нескольких условий
- Удаление строк с NaN или отсутствующими значениями на основе порогового значения
Отбросьте все строки с NaN или отсутствующим значением в Pandas Dataframe.
Мы можем удалить отсутствующие значения или значения NaN, которые присутствуют в строках Pandas DataFrames, используя функцию «дропна ()» в Питоне.
Наиболее широко используемый метод «dropna()» отбрасывает или удаляет строки с отсутствующими значениями или NaN в зависимости от условия, которое мы передали внутри функции.
- В приведенном ниже коде мы вызвали функцию «dropna()», которая отбрасывает нулевые значения, т. е. NaN или отсутствующие значения, присутствующие в DataFrame.Данные_пациентов“.
- Он будет возвращать только строки в DataFrame, в которых нет нулевых значений (NaN) или отсутствующих значений.
# Drop the rows that has NaN or missing value in it using the method dropna() Patients_data.dropna()
На приведенном ниже выходном изображении мы можем заметить, что в нашем DataFrame есть только две строки, в которых нет никаких Нулевые значения (NaN) или отсутствующие значения в нем.
Вот как мы можем удалить все строки с NaN или отсутствующими значениями в DataFrame в Python.
Отбросьте строки, содержащие NaN или отсутствующие значения в определенном столбце в Pandas Dataframe.
В этом разделе мы узнаем, как удалять строки с NaN или отсутствующими значениями в определенном столбце фрейма данных Pandas.
- В приведенном ниже коде мы передали ‘Болезнь‘ значение параметра подмножество для функции дропна ().
- Это проверит столбец Diesease, если он имеет NaN или отсутствующее значение, тогда вся строка будет удалена из Pandas DataFrame.
# Drop the rows that has NaN or missing value in it based on the specific column Patients_data.dropna(subset=['Diesease'])
В фактическом кадре данных отсутствуют значения в столбце «Болезнь» в позициях индекса 0, 3 и 7. Таким образом, все эти строки удалены в приведенном ниже выходном изображении.
Вот как мы можем удалить строки, содержащие NaN или отсутствующие значения в определенном столбце в Pandas DataFrame в Python.
Удаление строк с NaN или отсутствующими значениями на основе нескольких условий в Pandas Dataframe
Здесь мы пытаемся удалить строки на основе нескольких условий. Вместо того, чтобы удалять каждую строку с нулевым или отсутствующим значением, мы будем писать некоторые условия, такие как рассмотрение значений столбца, чтобы удалить строки в кадре данных.
- Код ниже показывает, что «дропна ()” метод называется. В разделе подмножества мы передали список с двумя значениями, т. е. Пол и Болезнь.
- И мы также устанавливаем значение «все» для параметра «как» в этой функции dropna().
- Этот код будет печатать только строки со значениями Non-null или non-NaN в столбцах Пол и Болезнь. ‘Пациенты_данные’ DataFrame и удалить остальные.
# Drop the rows that have NaN or missing value in it based on the specific columns Patients_data.dropna(subset=['Gender','Diesease'],how='all')
На приведенном ниже выходном изображении мы можем наблюдать, что строки с индексами 0,3,7 отбрасываются, потому что во всех этих строках значения ячеек в столбцах «Болезнь» и «Пол» отсутствуют, т. е. имеют значения NaN.
Вот как мы можем отбрасывать строки, содержащие NaN или отсутствующие значения, на основе нескольких условий в Python.
Удаление строк с NaN или отсутствующими значениями на основе порогового значения в Pandas Dataframe
Мы можем даже бросить строки, в которых отсутствует как минимум ‘n’ значения в DataFrame.
- В приведенном ниже коде мы прошли параметр обмолота к встроенной функции pandas дропна ().
- Здесь мы устанавливаем значение «4» для параметра thresh, чтобы приведенный ниже код отбрасывал все строки, которые не достигли порогового значения, т. е. в соответствии с кодом он возвращал строки, которые имеют как минимум 4 ненулевых или неотсутствующие значения в каждой строке DataFrame.
# Drop the rows that have NaN or missing value in the DataFrame based on the threshold Patients_data.dropna(thresh=4)
На приведенном ниже выходном изображении мы можем наблюдать, что во всем DataFrame есть только 2 строки, которые имеют как минимум 4 непропущенных значения в своей строке в DataFrame.
Вот как мы можем удалить строки с NaN или отсутствующими значениями на основе порога в Python Pandas.
Зачем отбрасывать NaN или отсутствующие значения в DataFrame в Python
При построении любой модели машинного обучения необходимо обучать модель с помощью данных. Если мы обучаем нашу модель с данными, в которых отсутствуют значения, наша модель запутается и не даст точных результатов. Удаление строк с отсутствующими значениями Очистка данных.
По этой причине мы должны либо отбросить строки с пропущенными значениями, либо заполнить пропущенные значения. Если обучающие данные менее 5 процентов отсутствующих значений тогда мы можем просто удалить строки DataFrame или набора данных в Python.
Заключение
В этом руководстве по Python Pandas мы рассмотрели такие темы, как:
- Что такое значение NaN?
- Зачем удалять строки, содержащие NaN или отсутствующие значения?
- Различные методы удаления строк DataFrame или набора данных с отсутствующими значениями.
Мы рассмотрели все эти темы с примерами, которые облегчают нам изучение Pandas в Python.
Вы можете ознакомиться с некоторыми учебными пособиями по Python Pandas:
Python — один из самых популярных языков в Соединенных Штатах Америки. Я давно работаю с Python и имею опыт работы с различными библиотеками на Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. У меня есть опыт работы с различными клиентами в таких странах, как США, Канада, Великобритания, Австралия, Новая Зеландия и т. д. Проверьте мой профиль.