#python #pandas #numpy #dataframe
#python #панды #numpy #фрейм данных
Вопрос:
Мой фрейм данных, df:
Col_A Col_B
Apple [1,2,3]
Banana [1,null,4]
Orange [6,null,null]
Нули представлены как np.nan
s в фрейме данных. Как я могу проверить, все ли значения в каждой строке Col_B равны нулю?
Это мой np.where
:
np.where(pd.isnull(df[Col_B]).all(), "Fail", "Pass")
Однако я получаю значение истинности неоднозначно, даже если у меня есть «.all()» там. Есть ли способ обойти эту проблему?
Ответ №1:
Я не верю, что вам нужно использовать np.where()
здесь. Вы можете попробовать это двумя другими способами:
df['one_bad'] = df['Col_B'].apply(lambda x: np.nan in x)
вернется True
, если в списке есть хотя бы один np.nan.
Но вы можете использовать np.isnan().all()
, чтобы проверить, все ли значения np.nan
.
df['all_bad'] = df['Col_B'].apply(lambda x: np.isnan(x).all())
вернется True
, если все значения в списке равны np.nan
и False
в противном случае.