如何解决如何获得作为有效 Python 表达式的 DataFrame 的代表?
我想对一些返回 pd.DataFrame
的代码进行单元测试。代码已经返回了正确的值,我想使用 pd.testing.assert_frame_equal
来断言它返回了这个值,这样如果我稍后更改代码,我就可以捕获回归。
Python 中的许多类型都有一个 .__repr__()
方法,该方法返回可用于重构对象的有效 Python 表达式。当我想为这些类型之一编写此类测试时,我可以运行
actual = my_func()
print(repr(actual))
然后测试是
def my_test():
actual = my_func()
expected = <what was printed>
assert actual == expected
然而,DataFrame
的 __repr__()
方法不返回 Python 表达式。有没有办法打印出一些重建数据帧的 Python 代码?
使用 DataFrame.to_dict()
然后将其传递给 DataFrame.__init__
很接近:
def my_test():
actual = my_func
expected = DataFrame(<output of print(actual.to_dict())>)
pd.testing.assert_frame_equal(actual,expected)
但是当 actual
为空时,这会崩溃,因为无法推断列类型,这就是我正在尝试测试的情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。