Python 如何比较3个或3个以上的数据帧以获得相同的结果?

Python 如何比较3个或3个以上的数据帧以获得相同的结果?,python,pandas,Python,Pandas,Ex-:我有3个数据框,如-:titanic&titanic_new&titanic_copy(数据相同) 我使用以下代码比较了3个数据帧&我得到了预期的结果-: (titanic.equals(titanic_copy)) and (titanic.equals(titanic_new)) and (titanic_copy.equals(titanic_new)) 输出-:真 是否有比较3个数据帧的最佳方法(或任何预定义方法)来比较3个或更多数据帧 TIA如果所有数据帧相等,则此表达式返回

Ex-:我有3个数据框,如-:titanic&titanic_new&titanic_copy(数据相同)

我使用以下代码比较了3个数据帧&我得到了预期的结果-:

(titanic.equals(titanic_copy)) and (titanic.equals(titanic_new)) and (titanic_copy.equals(titanic_new))
输出-:真

是否有比较3个数据帧的最佳方法(或任何预定义方法)来比较3个或更多数据帧


TIA

如果所有数据帧相等,则此表达式返回true:

all(x.equals(y) for x, y in zip(df_list[:-1], df_list[1:]))
要理解这一点的原因,请考虑

df_list = [dfA, dfB, dfC]
我们的表达式计算如下:

dfA == dfB
dfB == dfC
如果这两个条件都为真,我们知道所有的框架都是相等的(因为传递性——如果A==B和B==C,那么A==C,依此类推)


最小示例

df = pd.DataFrame({'A': [1, 2, 3]}, index=['a', 'b', 'c'])
df2 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
dfl1 = [df, df, df, df, df]
dfl2 = [df2, df, df2]

all(x.equals(y) for x, y in zip(dfl1[1:], dfl1[:-1]))
# True

all(x.equals(y) for x, y in zip(dfl2[1:], dfl2[:-1]))
# False

Prasanth,如果你觉得这个答案有用,请考虑一下,这表明你对我们在这个网站上的无偿志愿者的感激: