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