You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何比较两个含pandas DataFrame的列表?解决相等判断报错问题

解决方法

直接用a == b会报错,因为列表里的两个DataFrame结构不匹配,pandas的==运算符要求DataFrame必须索引和列完全一致才能做元素级比较。你可以用下面两种方式实现需求:

方法一:自定义比较函数

import pandas as pd

def compare_df_lists(list1, list2):
    # 先判断两个列表长度是否一致
    if len(list1) != len(list2):
        return False
    # 逐个用pandas的equals方法比较DataFrame
    for df1, df2 in zip(list1, list2):
        if not df1.equals(df2):
            return False
    return True

a = [pd.DataFrame([1,2,3])]
b = [pd.DataFrame([])]
print(compare_df_lists(a, b))  # 输出: False

方法二:一行代码实现

import pandas as pd

a = [pd.DataFrame([1,2,3])]
b = [pd.DataFrame([])]

result = len(a) == len(b) and all(df1.equals(df2) for df1, df2 in zip(a, b))
print(result)  # 输出: False

为什么这样可行?

df.equals(other)是pandas专门用来判断两个DataFrame是否完全相等的方法——它会先检查两个DataFrame的索引、列、数据类型是否一致,一致再比较所有元素的值;只要结构或值有一个不一样,就返回False,不会像==那样抛出错误。

内容的提问来源于stack exchange,提问作者royalewithcheese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:32:19