单元测试 Pandas DataFrame
Unit Testing Pandas DataFrame
我正在开发一个单元测试,它比较两个 DataFrame 和 returns 如果它们的长度相同则为真,如果不相同则 returns 长度差异以及缺失的内容输出行是。
例如:
示例 1:
df1 = {0,1,2,3,4}
df2 = {0,1,2,3,4}
True
示例 2:
df1 = {0,1,2,3,4}
df2 = {0,2,3,4}
False. 2 is missing.
通知我 df2 中缺少 df1 中的第二项。
这有可能吗?
查看 pd.util.testing
对于您的问题,您可以 pd.util.testing.assert_equal(df1, df2)
我认为首先你必须决定你想要什么:单元测试或 returns 两个数据帧之间差异的函数。
如果是前一种情况,你可以使用pd.util.testing.assert_frame_equal
:
first = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D'])
first['A'][0] = 99
second = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D'])
pd.util.testing.assert_frame_equal(first, second)
如果您的 DataFrame
不同,您将收到断言错误
AssertionError: DataFrame.iloc[:, 0] are different
DataFrame.iloc[:, 0] values are different (25.0 %)
[left]: [99, 4, 8, 12]
[right]: [0, 4, 8, 12]
在后一种情况下,如果您真的想要一个函数来告诉您缺少多少行以及数据框与另一个数据框的不同之处,那么您正在寻找的不是单元测试。
我正在开发一个单元测试,它比较两个 DataFrame 和 returns 如果它们的长度相同则为真,如果不相同则 returns 长度差异以及缺失的内容输出行是。
例如: 示例 1:
df1 = {0,1,2,3,4}
df2 = {0,1,2,3,4}
True
示例 2:
df1 = {0,1,2,3,4}
df2 = {0,2,3,4}
False. 2 is missing.
通知我 df2 中缺少 df1 中的第二项。
这有可能吗?
查看 pd.util.testing
对于您的问题,您可以 pd.util.testing.assert_equal(df1, df2)
我认为首先你必须决定你想要什么:单元测试或 returns 两个数据帧之间差异的函数。
如果是前一种情况,你可以使用pd.util.testing.assert_frame_equal
:
first = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D'])
first['A'][0] = 99
second = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D'])
pd.util.testing.assert_frame_equal(first, second)
如果您的 DataFrame
不同,您将收到断言错误
AssertionError: DataFrame.iloc[:, 0] are different
DataFrame.iloc[:, 0] values are different (25.0 %)
[left]: [99, 4, 8, 12]
[right]: [0, 4, 8, 12]
在后一种情况下,如果您真的想要一个函数来告诉您缺少多少行以及数据框与另一个数据框的不同之处,那么您正在寻找的不是单元测试。