Как выбрать строки без значений nan в pandas
Вы можете использовать следующие методы для выбора строк без значений NaN в pandas:
Способ 1: выберите строки без значений NaN во всех столбцах
df[~df. isnull (). any (axis= 1 )]
Способ 2: выберите строки без значений NaN в определенном столбце
df[~df[' this_column ']. isna ()]
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], ' points ': [np.nan, 12, 15, 25, np.nan, 22, 30], ' assists ': [4, np.nan, 5, 9, 12, 14, 10]}) #view DataFrame print (df) team points assists 0 A NaN 4.0 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 4 E NaN 12.0 5F 22.0 14.0 6G 30.0 10.0
Пример 1. Выбор строк без значений NaN во всех столбцах
Мы можем использовать следующий синтаксис для выбора строк без значений NaN в каждом столбце DataFrame:
#create new DataFrame that only contains rows without NaNs no_nans = df[~df. isnull (). any (axis= 1 )] #view results print (no_nans) team points assists 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
Обратите внимание, что каждая строка результирующего DataFrame не содержит значений NaN ни в одном столбце.
Пример 2. Выбор строк без значений NaN в определенном столбце
Мы можем использовать следующий синтаксис для выбора строк без значений NaN в столбце точек DataFrame:
#create new DataFrame that only contains rows without NaNs in points column no_points_nans = df[~df[' points ']. isna ()] #view results print (no_points_nans) team points assists 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
Обратите внимание, что каждая строка результирующего DataFrame не содержит значений NaN в столбце точек .
В столбце «Помощь» есть строка со значением NaN, но она сохраняется в DataFrame, поскольку значение в столбце «Точки» этой строки не равно NaN.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Pandas: как удалить строки со значениями NaN
Pandas: как заменить значения NaN строкой
Pandas: как заполнить значения NaN средним значением