Python 如何断言数据帧值是一个问题

Python 如何断言数据帧值是一个问题,python,pandas,dataframe,Python,Pandas,Dataframe,如何断言特定的行/列值为nan?我试图从iloc DataFrame值和将Pandas DataFrame转换为Numpy数组中断言一个值。似乎我可以将值作为np.nan输入,但我不能测试单个值 将熊猫作为pd导入 将numpy作为np导入 df=pd.DataFrame([ dict(id=1,color='red'), dict(id=2,color='blue'), dict(id=3,color=np.nan), ]) assert df.iloc[0,1]=“red”#True 断言d

如何断言特定的行/列值为nan?我试图从iloc DataFrame值和将Pandas DataFrame转换为Numpy数组中断言一个值。似乎我可以将值作为np.nan输入,但我不能测试单个值

将熊猫作为pd导入
将numpy作为np导入
df=pd.DataFrame([
dict(id=1,color='red'),
dict(id=2,color='blue'),
dict(id=3,color=np.nan),
])
assert df.iloc[0,1]=“red”#True
断言df.iloc[1,1]='blue'#True
#断言失败
assert df.iloc[2,1]==np.nan
#断言失败
断言df.to_numpy()[2][1]==np.nan
您想要什么

assert np.isnan(df.iloc[2, 1])
你想要

assert np.isnan(df.iloc[2, 1])
这里有一个技巧:

assert df.iloc[2, [1]].isna().any()
让我们使用pd。级数方法isna。我们可以将列括起来,强制返回单元素

另一种方法是使用math.isnan或np.isnan

import math

assert math.isnan(df.iloc[2, 1])
这里有一个技巧:

assert df.iloc[2, [1]].isna().any()
让我们使用pd。级数方法isna。我们可以将列括起来,强制返回单元素

另一种方法是使用math.isnan或np.isnan

import math

assert math.isnan(df.iloc[2, 1])