如何比较数据帧的行差异?

Mary-Kate Olsen
发布: 2024-10-19 21:13:29
原创
192 人浏览过

How to Compare DataFrames for Differences in Rows?

比较 DataFrame 的行差异

比较两个具有相同行和列的 DataFrame 时,简单的比较操作 (df1 != df2)就足够了。但是,如果数据帧具有不同的行集,则需要采用不同的方法来识别差异。

Concat、Group 和 Filter

一种比较数据帧的方法行差异是将它们连接起来,按列分组,并过滤​​唯一的行。以下代码说明了这一点:

<code class="python">df = pd.concat([df1, df2])
df = df.reset_index(drop=True)
df_gpby = df.groupby(list(df.columns))
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
result = df.reindex(idx)</code>
登录后复制

串联数据框 (df) 按其所有列 (df_gpby) 进行分组。 'groups.values()' 方法返回一个可迭代的元组,其中每个元组代表唯一行的索引。按长度 (len(x) == 1) 过滤元组可识别仅存在于一个数据帧中的行。最后,使用过滤索引 (idx) 重新索引数据帧会生成包含行差异的数据帧。

示例输出

使用提供的示例数据帧:

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

此输出显示 df2 中但不在 df1 中的行。

以上是如何比较数据帧的行差异?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!