Як використовувати «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 за кількома умовами

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *