python - 与 nan 相乘时,熊猫是否会产生错误
问题描述
我想让熊猫在尝试对具有 nan 值的单元格进行算术运算时产生错误。因此,如果我创建一个虚拟 DataFrame:
test_input = pd.DataFrame(columns=['a','b','c'],
index=[1,2],
data=[[np.nan, np.nan, 2.0],[np.nan, 1.0, 3.0]])
看起来像这样:
如果我然后将其乘以其他一组值,它将乘以 DataFrame 中的有效条目,并保持 NaN 不变:
test_input * np.array([2,2,2])
而我希望它在尝试对包含 NaN 的单元格进行算术运算时产生错误。
我尝试使用 .fillna 将 NaN 替换为None
(据我所知,无法完成,因为 fillna 认为您没有输入任何值)并用字符串替换 NaN(如果您尝试乘以一个浮点数,但不是一个整数),但我想知道我是否缺少一些更明显的方法?
提前致谢!
解决方案
NaN
值是类型float
。因此,它们在 Pandas / NumPy 中的算术运算上工作得很好。您必须重写 Pandas / NumPy 方法才能实现您的目标。不建议这样做。
相反,只需在计算之前执行显式检查:
assert test_input.notnull().values.all() # AssertionError if null value exists