如何在np.where()中的数据框中检查列表中的空元素?

时间:2020-09-29 16:28:15

标签: python pandas numpy dataframe

我的数据框df:

Col_A Col_B
Apple [1,2,3]
Banana [1,null,4]
Orange [6,null,null]

在数据帧中,空值表示为np.nan。如何检查Col_B每行中的所有值是否都为空?
这是我的np.where

np.where(pd.isnull(df[Col_B]).all(), "Fail", "Pass")

但是,即使我那里有一个“ .all()”,我得到的真值还是模棱两可的。有什么办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为您不需要在这里使用np.where()。您可以尝试另外两种方式:

df['one_bad'] = df['Col_B'].apply(lambda x: np.nan in x)
如果列表中至少有一个np.nan,

将返回True。 但是您可以使用np.isnan().all()来检查是否所有值都是np.nan

df['all_bad'] = df['Col_B'].apply(lambda x: np.isnan(x).all())
如果列表中的所有值均为True,则

返回np.nan,否则返回False