创建函数来测试是否有2个以上的数据帧不同



我有一个这样的数据帧列表(在df_lst中(,我需要检查哪些不同。

以下是一些数据帧

from pandas._testing import assert_frame_equal
d1 = pd.DataFrame({1: [10], 2: [20]})
d2 = pd.DataFrame({1: [10], 2: [20]})
d3 = pd.DataFrame({1: [11], 2: [20]})
d4 = pd.DataFrame({1: [11], 2: [20]})
d5 = pd.DataFrame({1: [9], 2: [20]})
df_lst=[d1,d2,d3,d4,d5]

我知道你可以用这个命令来检查

assert_frame_equal(d1,d3)

但理想情况下,它必须是一个函数或允许您输入数据帧列表的东西——下面的代码无法工作,因为它缺少一个参数。如果不相等,则应在此时终止

def check_equality (df_lst):
for i in df_lst:
assert_frame_equal(i)

欢迎任何意见。非常感谢!

如果您将列表与单个已知正确的数据帧进行比较,则可以执行以下操作:

def check_equality(df_lst, correct_df):
for i in df_lst:
assert_frame_equal(correct_df, i)

如果你想对列表中的所有数据帧进行成对比较,(a, b), (a, c), (a, d), (b, c), etc...,你可以试试这个:

from itertools import product
def check_equality(df_lst):
for pair in product(df_lst, repeat=2):
assert_frame_equal(pair[0], pair[1])

相关内容

  • 没有找到相关文章

最新更新