Як використовувати «isn't null»? в pandas (з прикладами)
Ви можете використовувати функцію pandas notnull() , щоб перевірити, чи є елементи pandas DataFrame нульовими чи ні.
Якщо елемент дорівнює NaN або None, тоді функція поверне значення False .
В іншому випадку функція поверне True .
Ось кілька поширених способів використання цієї функції на практиці:
Спосіб 1: фільтрування рядків без нульових значень у будь-якому стовпці
df[df. notnull (). all ( 1 )]
Спосіб 2: фільтрування рядків без нульових значень у певному стовпці
df[df[[' this_column ']]. notnull (). all ( 1 )]
Спосіб 3: підрахуйте кількість ненульових значень у кожному стовпці
df. notnull (). sum ()
Спосіб 4: Підрахуйте кількість ненульових значень у всьому DataFrame
df. notnull (). sum (). sum ()
Наступні приклади показують, як використовувати кожен метод на практиці з такими pandas DataFrame:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, np.nan], ' assists ': [5, np.nan, 7, 9, 12, 9, 9, np.nan], ' rebounds ': [11, 8, 10, 6, 6, 5, np.nan, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B 22.0 NaN 8.0 2 C 19.0 7.0 10.0 3D 14.0 9.0 6.0 4 E 14.0 12.0 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 NaN 7 H NaN NaN 12.0
Приклад 1: фільтрування рядків без нульових значень у будь-якому стовпці
Наступний код показує, як фільтрувати DataFrame, щоб відображати лише рядки без нульових значень у будь-якому стовпці:
#filter for rows with no null values in any column
df[df. notnull (). all ( 1 )]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
Зауважте, що кожен із рядків цього відфільтрованого DataFrame не має нульових значень у жодному стовпці.
Приклад 2: фільтрування рядків без нульових значень у певному стовпці
Наступний код показує, як фільтрувати DataFrame, щоб відображати лише рядки без нульових значень у допоміжному стовпці:
#filter for rows with no null values in the 'assists' column
df[df[[' assists ']]. notnull (). all ( 1 )]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 NaN
Зауважте, що кожен із рядків цього відфільтрованого DataFrame не має нульових значень у стовпці Helper .
Приклад 3: підрахуйте кількість ненульових значень у кожному стовпці
Наступний код показує, як підрахувати кількість ненульових значень у кожному стовпці DataFrame:
#count number of non-null values in each column
df. notnull (). sum ()
team 8
points 7
assists 6
rebounds 7
dtype: int64
З результату ми бачимо:
- Стовпець команди містить 8 ненульових значень.
- Стовпець балів містить 7 ненульових значень.
- Стовпець передач має 6 ненульових значень.
- Стовпець відмов містить 7 ненульових значень.
Приклад 4: підрахуйте кількість ненульових значень у всьому DataFrame
Наступний код показує, як підрахувати кількість ненульових значень у всьому DataFrame:
#count number of non-null values in entire DataFrame
df. notnull (). sum (). sum ()
28
З результату ми бачимо, що у всьому DataFrame є 28 ненульових значень.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції фільтрації в pandas:
Як відфільтрувати Pandas DataFrame за значеннями стовпців
Як відфільтрувати «Не містить» у Pandas
Як відфільтрувати Pandas DataFrame за кількома умовами