В Pandas мы можем отбрасывать столбцы/строки с помощью .dropna(how = ..., axis = ...)
, но есть ли способ получить массив индикаторов True/False для каждого столбца/строки, который указывал бы, содержит ли столбец/строка нет в соответствии с аргументами how
и axis
?
т.е. есть ли способ преобразовать .dropna(how = ..., axis = ...)
в метод, который вместо фактического удаления просто рассказать нам, какие столбцы/строки бы будут удалены, если мы вызвали .dropna(...)
с определенными how
и axis
.
Спасибо за ваше время!
Вы можете использовать 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(...), не знал о них!