xlwings表示#N / A

时间:2017-09-23 19:25:22

标签: python unit-testing numpy python-unittest xlwings

我在Python中使用带有numpy和unittest的xlwings来测试Excel电子表格。但是,当xlwings导入的值为#N / A时,结果为-2146826246。

我知道这可能与xlwings将值导入为float有关,并且可能没有#N / A的良好浮点表示。

我想将#N / A与nan进行比较。有关如何实现这一目标的任何建议吗?

3 个答案:

答案 0 :(得分:2)

对于任何可能在未来遇到同样问题的人。我使用了一种非常粗略的方法来构建一个包含错误编号和我想要返回的值的字典。

error_dict = {-2146826281:np.inf,-2146826246:np.nan}

如果有人有更优雅的解决方案,请告诉我!

答案 1 :(得分:0)

如果您将(excel)数据作为Pandas Dataframe引入(或转换),则可以添加另一个潜力,您始终可以使用replace将旧的#N / A值转换为NaN的值(在Python中更容易处理) / Pandas ..

df.replace(-2146826246,float('nan'))

答案 2 :(得分:0)

将范围转换为df时,请使用此选项

.options(empty=np.nan) 

然后,像NaN一样处理不同的错误非常容易

df[df==-2146826246]=np.nan

这对于在对我们的数据框使用函数和计算时避免错误非常有用