[英]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.