首页 >后端开发 >Python教程 >如何比较数据帧的行差异?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-19 21:13:29283浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn