繁体   English   中英

在python中找到两个数据帧之间的差异(设置差异)

[英]Find the difference (set difference) between two dataframes in python

我有两个数据框:df1 和 df2。 我想消除 df1 中所有出现的 df2 行。 基本上,这是集差运算符,但用于数据帧。

我的问题这个问题非常相似, 有一个主要变化是 df1 可能根本没有公共行。 在这种情况下,如果我们连接两个数据帧然后删除重复项,它仍然不会消除 df1 中出现的 df2。 事实上,它增加了它。

问题也与类似,只是我想要对行进行操作。

例子:

Case 1:
df1:
A,B,C,D
E,F,G,H

df2:
E,F,G,H

Then, df1-df2:
A,B,C,D

Case 2:
df1:
A,B,C,D

df2:
E,F,G,H

Then, df1 - df2:
A,B,C,D

简单地说,我正在寻找一种方法来执行 df1 - df2(如果 df1 中存在,则删除 df2)。 这应该怎么做?

尝试:

df1[~df1.isin(df2)]

A,B,C,D

设置差异将在这里起作用,它返回 ar1 中不在 ar2 中的唯一值。

np.setdiff1d(df1, df2)

或者以DataFrame的形式获取结果,

pd.DataFrame([np.setdiff1d(df1, df2)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM