当前位置: 首页 > news >正文

【Pandas】pandas DataFrame equals

Pandas2.2 DataFrame

Reindexing selection label manipulation

方法描述
DataFrame.add_prefix(prefix[, axis])用于在 DataFrame 的行标签或列标签前添加指定前缀的方法
DataFrame.add_suffix(suffix[, axis])用于在 DataFrame 的行标签或列标签后添加指定后缀的方法
DataFrame.align(other[, join, axis, level, …])用于对齐两个 DataFrameSeries 的方法
DataFrame.at_time(time[, asof, axis])用于筛选 特定时间点 的行的方法
DataFrame.between_time(start_time, end_time)用于筛选 指定时间范围内的数据行 的方法
DataFrame.drop([labels, axis, index, …])用于从 DataFrame 中删除指定行或列的方法
DataFrame.drop_duplicates([subset, keep, …])用于删除重复行的方法
DataFrame.duplicated([subset, keep])用于检测 重复行 的方法
DataFrame.equals(other)用于比较两个 DataFrame 是否完全相等的方法

pandas.DataFrame.equals()

pandas.DataFrame.equals(other) 是用于比较两个 DataFrame 是否完全相等的方法。它会逐个检查索引、列名以及每个元素的值是否一致,适用于数据验证和测试场景。


📌 方法签名
DataFrame.equals(other)

🔧 参数说明:
参数类型说明
otherDataFrame 或其他对象要比较的对象,如果不是 DataFrame,直接返回 False

✅ 返回值:
  • bool:如果两个 DataFrame 完全相同(包括索引、列顺序、值、数据类型),则返回 True;否则返回 False

🧪 示例代码:
示例 1:两个完全相同的 DataFrame
import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['x', 'y'])
df2 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['x', 'y'])print("df1.equals(df2):", df1.equals(df2))
输出结果:
df1.equals(df2): True

示例 2:列顺序不同
df3 = pd.DataFrame({'B': [3, 4], 'A': [1, 2]}, index=['x', 'y'])print("df1.equals(df3):", df1.equals(df3))
输出结果:
df1.equals(df3): False

示例 3:索引不同
df4 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['a', 'b'])print("df1.equals(df4):", df1.equals(df4))
输出结果:
df1.equals(df4): False

示例 4:数据类型不同但值相同
df5 = pd.DataFrame({'A': [1.0, 2.0], 'B': [3.0, 4.0]}, index=['x', 'y'])print("df1.equals(df5):", df1.equals(df5))
输出结果:
df1.equals(df5): False

即使数值上相等,但由于 df1 中是整数类型而 df5 是浮点类型,所以不认为相等。


示例 5:包含 NaN 的比较
df6 = pd.DataFrame({'A': [1, None], 'B': [None, 4]}, index=['x', 'y'])
df7 = pd.DataFrame({'A': [1, None], 'B': [None, 4]}, index=['x', 'y'])print("df6.equals(df7):", df6.equals(df7))
输出结果:
df6.equals(df7): True

NaN 值在对应位置也视为相等。


🧠 应用场景:
  • 测试脚本中验证数据处理流程是否正确;
  • 数据版本控制或快照对比;
  • 检查两个来源的数据是否一致;
  • 确保数据转换前后未发生意外更改。

⚠️ 注意事项:
  • 必须结构和内容完全一致 才返回 True
  • 包括索引顺序、列顺序、数据类型、NaN 位置等;
  • 不推荐用于大规模数据比较,效率较低;
  • 对比时不会自动忽略行/列顺序差异。

相关文章:

  • 构筑电网“无形防线”: 防外破告警在线监测服务系统
  • 数据结构 -- 判断正误
  • 【数据结构】栈和队列(下)
  • 从零开始创建 Vue 3 开发环境并构建第一个 Demo
  • 【Pandas】pandas DataFrame duplicated
  • Opencv实用操作5 图像腐蚀膨胀
  • WPF log4net用法
  • Facebook 的隐私保护措施是否足够?技术观点
  • 1614. 括号的最大嵌套深度【 力扣(LeetCode) 】
  • LVS+KeepAlived
  • ansible template 文件中如果包含{{}} 等非ansible 变量处理
  • 【python深度学习】Day 39 图像数据与显存
  • 关于 JavaScript 版本、TypeScript、Vue 的区别说明, PHP 开发者入门 Vue 的具体方案
  • 2.spring基础入门(二)
  • 充电便捷,新能源汽车移动充电服务如何预约充电
  • 数字孪生数据监控如何提升汽车零部件工厂产品质量
  • 汽车制造场景下Profibus转Profinet网关核心功能与应用解析
  • 新能源汽车电控系统的精准守护者PKDV5355高压差分探头
  • 【JS进阶】JavaScript 中 this 值的确定规则
  • 单片机——keil5
  • 做安卓icon图标下载网站/南京网络优化公司有哪些
  • 网站维护工作是做啥/长春百度网站优化
  • 网站怎么制作 推广/灰色关键词排名技术
  • 成都网站seo服务/seo在线网站推广
  • 深圳建站公司一般需要多久/电子商务营销的概念
  • 租好服务器咋做网站呢/常见的网络营销方法有哪些