我如何单元测试python数据帧?
我有一些输入和输出作为数据帧的函数.几乎我所有的功能都是这样做的.现在,如果我想进行单元测试,那么最好的方法是什么?为每个函数创建一个新的数据框(填充值)似乎有点费力?
你有什么材料可以推荐我吗?你应该为这些功能编写单元测试吗?
虽然Pandas的测试功能主要用于内部测试,但NumPy包含一组非常有用的测试功能,这些功能在此处记录:NumPy测试支持.
这些函数比较了NumPy数组,但您可以使用该values
属性获得构成Pandas数据框架的数组.您可以定义一个简单的数据框,并将您的函数返回到您期望的内容.
您可以使用的一种技术是为许多函数定义一组测试数据.这样,您可以使用Pytest Fixtures定义该数据框一次,并在多个测试中使用它.
在资源方面,我发现这篇关于使用NumPy和Pandas进行测试的文章非常有用.我还在今年的PyCon Canada上做了关于数据分析测试的简短介绍:自动化您的数据分析测试.
你可以使用pandas测试功能:
它将提供更多的灵活性,以便以不同的方式将您的结果与计算结果进行比较.
例如:
df1=pd.DataFrame({'a':[1,2,3,4,5]}) df2=pd.DataFrame({'a':[6,7,8,9,10]}) expected_res=pd.Series([7,9,11,13,15]) pd.testing.assert_series_equal((df1['a']+df2['a']),expected_res,check_names=False)
有关详细信息,请参阅此链接