Python 检查值是否为“无”
我有一个数据帧Python 检查值是否为“无”,python,pandas,Python,Pandas,我有一个数据帧 df = pd.DataFrame({'k':['a','b','c'],'v':[1,None,3]}) k v 0 a 1.0 1 b NaN 2 c 3.0 我想检查列k的b值是否为NaN 我试过了 if df['v'][df['k']=='b'] is None: print("yes") else: print('no') 这不会产生任何输出 我也试过了 if df['v'][df['k']=='b']
df = pd.DataFrame({'k':['a','b','c'],'v':[1,None,3]})
k v
0 a 1.0
1 b NaN
2 c 3.0
我想检查列k
的b
值是否为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')
及
两者都给了我这个错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如果,只要您有一个空值,您就会希望返回
True
,然后使用.any()
。如果希望所有值都为Null(在本例中,这并不重要,因为只有一个值),则使用.all()
:
输出:
是
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
if df[df['k']=='b']['v'].isna().any():
print("yes")
else:
print('no')