Функция notnull
Функция notnull применяется к DataFrame
или Series и проверяет каждый элемент на
отсутствие пропусков (NaN, None,
NaT). Возвращает объект того же размера,
где на месте непустых значений стоит True,
а на месте пропусков - False.
Функция является псевдонимом для notna,
поэтому их использование полностью идентично.
Синтаксис
pd.notnull(obj)
Параметр obj - это DataFrame,
Series или скалярное значение.
Пример
Проверим элементы серии на отсутствие пропусков:
import pandas as pd
import numpy as np
ser = pd.Series([1, np.nan, 3, None, 5])
res = pd.notnull(ser)
print(res)
Результат выполнения кода:
0 True
1 False
2 True
3 False
4 True
dtype: bool
Как видно из результата, пропуски на позициях
1 и 3 отмечены как False,
а остальные значения - как True.
Пример
Применим функцию к таблице для поиска строк без пропущенных значений:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5],
'b': [10, np.nan, 30, 40, None]
})
res = pd.notnull(df)
print(res)
Результат выполнения кода:
a b
0 True True
1 True False
2 False True
3 True True
4 True False
Функция вернула таблицу логических значений,
где True означает отсутствие пропуска,
а False - наличие пропуска в ячейке.
Пример
Используем результат работы notnull для
фильтрации строк без пропусков:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5],
'b': [10, np.nan, 30, 40, None]
})
filter_mask = pd.notnull(df).all(axis=1)
clean_df = df[filter_mask]
print(clean_df)
Результат выполнения кода:
a b
0 1.0 10.0
3 4.0 40.0
Сначала мы получили маску с помощью notnull,
затем применили метод all по строкам,
чтобы выбрать только те строки, где все значения
не являются пропусками.