Pandas: быстрый способ получить столбцы/строки, содержащие na

В Pandas мы можем отбрасывать столбцы/строки с помощью .dropna(how = ..., axis = ...), но есть ли способ получить массив индикаторов True/False для каждого столбца/строки, который указывал бы, содержит ли столбец/строка нет в соответствии с аргументами how и axis?

т.е. есть ли способ преобразовать .dropna(how = ..., axis = ...) в метод, который вместо фактического удаления просто рассказать нам, какие столбцы/строки бы будут удалены, если мы вызвали .dropna(...) с определенными how и axis.

Спасибо за ваше время!

0
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать isna() для воспроизведения поведения dropna без фактического удаления данных. Чтобы имитировать параметры 'how' и 'axis', вы можете добавить any() или all() и соответствующим образом установить axis.

Вот простой пример:

import pandas as pd

df = pd.DataFrame([[pd.NA, pd.NA, 1], [pd.NA, pd.NA, pd.NA]])
df.isna()

Выход:

    0   1   2
0   True    True    False
1   True    True    True

уравнение в dropna(how='any', axis=0)

df.isna().any(axis=0)

Выход:

0    True
1    True
2    True
dtype: bool

уравнение в dropna(how='any', axis=1)

df.isna().any(axis=1)

Выход:

0    True
1    True
dtype: bool

Большое спасибо! Это как раз то, что я искал! Я буду иметь в виду методы .any(...) и .all(...), не знал о них!

Daniil 09.04.2022 14:45

Другие вопросы по теме