Python, Pandas: возвращать только те строки, у которых отсутствуют значения

Во время работы в Pandas в Python...

Я работаю с набором данных, который содержит некоторые отсутствующие значения, и я хотел бы вернуть DataFrame, который содержит только те строки, у которых отсутствуют данные. Есть ли хороший способ сделать это?

(Мой текущий метод для этого - неэффективный "взгляд, чтобы увидеть, какой индекс отсутствует в фреймворке без пропущенных значений, а затем вывести df из этих индексов".)

Ответы

Ответ 1

Вы можете использовать any axis=1 чтобы проверить хотя бы одно значение True на строку, а затем выполнить фильтрацию с логическим индексированием:

null_data = df[df.isnull().any(axis=1)]

Ответ 2

Аналогично метру ответ,

null_data = df[np.logical_or.reduce(df.isnull(), axis=1)]

Тестовое задание

n = 2
df = pd.DataFrame({'a':np.tile([0,1,2,3,4,np.nan],n),
                   'b':np.tile([0,1,2,3,np.nan,5],n)})

x = df[np.logical_or.reduce(df.isnull().values,axis=1)]
y = df[df.isnull().any(axis=1)]
x.equals(y)