DataFrame.notnull() / Series.notnull()

Метод notnull() (синоним — notna()) возвращает булеву маску: True там, где значение не является пропуском (не NaN, не NaT, не None). Противоположность isnull()/isna().

Сигнатура

DataFrame.notnull()
Series.notnull()

Параметры

Метод не принимает параметров.

Возвращаемое значение

Булев DataFrame или Series тех же размеров, что и исходный объект.

Примеры

Пример 1. Series

import pandas as pd
import numpy as np

s = pd.Series([22.1, np.nan, 23.0, None])
print(s.notnull())
0     True
1    False
2     True
3    False
dtype: bool

Пример 2. Фильтрация валидных значений

import pandas as pd
import numpy as np

s = pd.Series([22.1, np.nan, 23.0, np.nan, 22.5])
print(s[s.notnull()])
0    22.1
2    23.0
4    22.5
dtype: float64

Пример 3. DataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "t":  [22.0, np.nan, 23.0],
    "h":  [55,   60,     np.nan],
})
print(df.notnull())
      t      h
0  True   True
1  False  True
2  True  False

Пример 4. Подсчёт валидных значений по столбцам

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "s1": [1, 2, np.nan, 4],
    "s2": [np.nan, np.nan, 3, 4],
})
print(df.notnull().sum())
s1    3
s2    2
dtype: int64

Пример 5. Только полные строки

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "a": [1, np.nan, 3],
    "b": [4, 5, np.nan],
})
mask = df.notnull().all(axis=1)
print(df[mask])
     a    b
0  1.0  4.0

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.