首页 > 解决方案 > 如何检查值是 nan 还是列表?

问题描述

我目前正在使用 pandas DataFrame。在迭代它时,我想检查一个值是numpy.nan还是一个列表。

for i, row in df.iterrows():
value = row["Name"]
if pd.isnull(value):
    dosomething()

这工作得很好,除非

type(value) == list

然后我想也许可以放any()

for i, row in df.iterrows():
value = row["Name"]
if any(pd.isnull(value)):
    dosomething()

但是现在每次 aNaN值时我都会得到一个异常,因为它显然是不可迭代的。

有没有比检查值类型更好的解决方案?

标签: pythonpandasnumpy

解决方案


使用or

for i, row in df.iterrows():
    value = row["Name"]
    if pd.isnull(value) or (type(value) == list):
        dosomething()

另一种检查方法是isinstance

for i, row in df.iterrows():
    value = row["Name"]
    if pd.isnull(value) or isinstance(value, list):
        dosomething()

推荐阅读