首页 > 解决方案 > 熊猫检查值是否为 NONE

问题描述

我有一个数据框

df = pd.DataFrame({'k':['a','b','c'],'v':[1,None,3]})

   k    v
0  a  1.0
1  b  NaN
2  c  3.0

我想检查 columnkb值是否为 NaN

我试过了

if df['v'][df['k']=='b'] is None:
    print("yes")
else:
    print('no')

这给出了输出没有

我也试过

if df['v'][df['k']=='b'] == None:
    print("yes")
else:
    print('no')

if df['v'][df['k']=='b'].isna():
    print("yes")
else:
    print('no')

都给我这个错误

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

标签: pythonpandas

解决方案


如果,只要你有一个空值,你会想要返回Truethen use .any()。如果您希望所有值都为 Null(在这种情况下并不重要,因为只有一个值)然后使用.all()

if df[df['k']=='b']['v'].isna().any():
    print("yes")
else:
    print('no')

输出:

yes


推荐阅读