首页 > 后端开发 > Python教程 > 如何比较两个数据帧并根据特定列提取差异?

如何比较两个数据帧并根据特定列提取差异?

Patricia Arquette
发布: 2024-10-19 21:14:02
原创
481 人浏览过

How to Compare Two Dataframes and Extract Differences Based on Specific Columns?

比较两个数据帧并识别差异

在您的场景中,您有两个数据帧 df1 和 df2,具有相同的结构和行索引。您的目标是通过比较日期和水果值来确定哪些行存在于 df2 而不是 df1。

直接比较

使用 df1 != df2 的方法不合适,因为它需要相同标记的数据帧。删除日期索引也无法解决问题。

串联和分组

要查找差异,您可以将数据帧串联成单个数据帧 df:

<code class="python">import pandas as pd

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)</code>
登录后复制

按 df 的所有列进行分组以识别唯一记录:

<code class="python">df_gpby = df.groupby(list(df.columns))</code>
登录后复制

过滤唯一记录

接下来,检索唯一记录的索引,即组大小为 1 的行:

<code class="python">idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]</code>
登录后复制

最后,您可以使用这些索引来过滤连接的数据帧,以仅获取 df2 独有的行:

<code class="python">df.reindex(idx)</code>
登录后复制

这将返回一个包含所需差异的数据框:

         Date   Fruit   Num   Color
9  2013-11-25  Orange   8.6  Orange
8  2013-11-25   Apple  22.1     Red
登录后复制

以上是如何比较两个数据帧并根据特定列提取差异?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板