Как удалить nan в pandas? 🐼✨
Pandas: как удалить значения NaN?
Для удаления значений NaN в библиотеке Pandas можно использовать метод dropna
. Данный метод удаляет все строки или столбцы, содержащие хотя бы одно значение NaN.
import pandas as pd
# Создаем DataFrame с NaN значениями
data = {'A': [1, 2, NaN, 4],
'B': [5, NaN, 7, 8],
'C': [9, 10, 11, 12]}
df = pd.DataFrame(data)
# Используем метод dropna для удаления NaN значений
df_cleaned = df.dropna()
print(df_cleaned)
В результате выполнения кода будут выведены строки, не содержащие значения NaN.
Детальный ответ
Добро пожаловать в увлекательный мир библиотеки pandas! В этой статье мы рассмотрим, как удалить значения NaN из наших данных с помощью pandas.
Что такое NaN?
NaN обозначает "Not a Number" и представляет собой специальное значение, которое используется для обозначения отсутствующих или недопустимых значений в числовых данных. Это может произойти, когда некоторые данные отсутствуют или не могут быть корректно представлены в числовой форме.
Использование функции dropna()
Одним из способов удалить значения NaN в pandas является использование функции dropna(). Эта функция удаляет строки или столбцы с отсутствующими значениями в зависимости от заданного параметра.
Давайте рассмотрим пример. Предположим, у нас есть следующий DataFrame:
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4],
'B': [np.nan, 2, 3, np.nan],
'C': [1, np.nan, np.nan, 4]}
df = pd.DataFrame(data)
print(df)
Результат будет следующим:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 NaN
2 NaN 3.0 NaN
3 4.0 NaN 4.0
Чтобы удалить строки с отсутствующими значениями, мы можем использовать следующий код:
df_without_nan = df.dropna()
print(df_without_nan)
Выходной результат:
A B C
1 2.0 2.0 NaN
Функция dropna() удаляет все строки, в которых есть хотя бы одно отсутствующее значение. В нашем примере, только вторая строка удовлетворяет этому условию.
Если вы хотите удалить столбцы с отсутствующими значениями, вы можете указать параметр axis=1:
df_without_nan_columns = df.dropna(axis=1)
print(df_without_nan_columns)
Выходной результат:
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]
Функция dropna(axis=1) удаляет все столбцы, в которых есть хотя бы одно отсутствующее значение. В нашем примере, все столбцы содержат хотя бы одно отсутствующее значение, поэтому результатом является пустой DataFrame.
Использование функции fillna()
Если вы не хотите удалять строки или столбцы, содержащие NaN, вы можете заполнить эти значения другими значениями с помощью функции fillna().
Передадим значение 0 в функцию fillna() для заполнения отсутствующих значений:
df_filled_with_zero = df.fillna(0)
print(df_filled_with_zero)
Выходной результат:
A B C
0 1.0 0.0 1.0
1 2.0 2.0 0.0
2 0.0 3.0 0.0
3 4.0 0.0 4.0
Значения NaN были заменены на 0.
Использование функции drop()
Если вам необходимо удалить строки или столбцы, содержащие NaN, только в определенных условиях, вы можете использовать функцию drop().
Давайте предположим, что мы хотим удалить строки, в которых есть отсутствующие значения в столбце "A". Мы можем использовать следующий код:
df_drop_condition = df.dropna(subset=['A'])
print(df_drop_condition)
Выходной результат:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 NaN
3 4.0 NaN 4.0
Только вторая строка содержит NaN в столбце "A", поэтому остальные строки остаются без изменений.
Вывод
В этой статье мы изучили, как удалить значения NaN из наших данных с помощью библиотеки pandas. Мы рассмотрели использование функций dropna(), fillna() и drop().
Функция dropna() позволяет удалить строки или столбцы с отсутствующими значениями, в то время как функция fillna() позволяет заполнить отсутствующие значения другими значениями. Функция drop() позволяет удалить строки или столбцы на основе определенных условий.
Надеюсь, эта информация была полезной! Удачи в работе с pandas!