В мире науки о данных и аналитики встреча с отсутствующими данными — скорее правило, чем исключение. Отсутствующие значения могут исказить анализ, привести к неверным выводам и в целом нарушить ход обработки данных. Устранение таких пробелов имеет решающее значение для сохранения целостности вашего анализа. Цель этой статьи — познакомить вас с различными способами определения значений NaN (Not a Number) в Python.
Если лень читать всю статью: для работы с пропущенными значениями используйте либо функцию isnan() из NumPy, либо метод .isna() из Pandas.
При работе с пропущенными значениями подход во многом зависит от структуры данных, с которой вы работаете.
Функция isnan() от NumPy идеально подходит для определения NaN в числовых массивах или одиночных значениях, предлагая простое и эффективное решение.
import numpy as np # Проверка одиночного значения my_missing_value = np.nan print(np.isnan(my_missing_value)) # Output: True # Проверка массива my_missing_array = np.array([1, np.nan, 3]) nan_array = np.isnan(my_missing_array) print(nan_array) # Output: [False True False]
Для определения отсутствующих значений в объектах DataFrame или Series Pandas предоставляет такие методы, как .isna() и .isnull(). Их можно легко интегрировать в рабочие процессы анализа данных.
import pandas as pd
import numpy as np
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna()) Когда вы запустите этот код, вывод покажет наличие NaN-значений в более интересном контексте:
Column1 Column2 0 False False 1 False True 2 True False
Понимание разницы между NaN и None очень важно в Python. NaN расшифровывается как «Not a Number» — «Не число». Это представление «не числа» с плавающей точкой, используемое в основном в числовых вычислениях.
None, в свою очередь, является объектом Python, представляющим отсутствие значения, сродни null в других языках. В то время как NaN используется в математических или научных вычислениях, None имеет более общее назначение, указывая на отсутствие данных.
Навигация по набору данных для выявления отсутствующих значений — важный шаг в предварительной обработке данных. Давайте рассмотрим четыре практических метода проверки значений NaN в Python, продолжая уже использованные нами увлекательные примеры.
Как мы видели ранее, NumPy предоставляет простой подход к определению NaN-значений как в одиночных значениях, так и в массивах, что очень важно для анализа числовых данных.
import numpy as np # Проверка одиночного значения print(np.isnan(np.nan)) # Output: True # Проверка массива my_array = np.array([1, 5, np.nan]) print(np.isnan(my_array)) # Output: [False False True]
Pandas упрощает обнаружение значений NaN в структурах данных, от скаляров до сложных датафреймов, что делает ее неоценимой для задач манипулирования данными.
import pandas as pd
# Проверка одиночного значения
print(pd.isna(np.nan)) # Output: True
# Проверка pandas Series
my_series = pd.Series(["Python", np.nan, "The Best"])
print(my_series.isna()) # Output: [False True False]
# Проверка pandas DataFrame
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(pd.isna(my_dataframe)) # Выводит DataFrame с True для отсутствующих значений В датафреймах Pandas также имеются методы .isna() и .isnull(), позволяющие без труда определять отсутствующие значения в наборах данных, обеспечивая четкое представление о полноте данных.
import pandas as pd
# Создать датафрейм с отсутствующими значениями
my_dataframe = pd.DataFrame({
'Column1': ["I", "Love", np.nan],
'Column2': ["Python", np.nan, "The Best"]
})
print(my_dataframe.isna())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False
print(my_dataframe.isnull())
# Output:
# Column1 Column2
# 0 False False
# 1 False True
# 2 True False Функция math.isnan() предлагает простое, но эффективное решение для проверки отдельных чисел. Она особенно полезна при работе с чистыми типами данных Python.
import math
# Предположим, значение my_number - это float или может быть конвертировано во float
my_number = float('nan')
print(math.isnan(my_number)) # Output: True Выявление и обработка значений NaN — это фундаментальный шаг в очистке и подготовке данных к анализу. Независимо от того, имеете ли вы дело с массивами, сериями или фреймами данных, очень важно знать инструменты и методы для работы с отсутствующими данными, доступные в Python.
Перевод статьи «Python NaN: 4 Ways to Check for Missing Values in Python».
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…