我有两个数据帧:df1 和 df2。 我想消除 df1 中出现的所有 df2 行。 基本上,这是集差运算符,但适用于数据帧。
我的问题与this question 非常相似一个主要的变化是 df1 可能根本没有公共(public)行。在那种情况下,如果我们连接两个数据帧然后删除重复项,它仍然不会消除 df1 中出现的 df2。事实上,它增加了它。
问题也类似于this ,除了我想对行进行操作。
示例:
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)。应该怎么做?
请您参考如下方法:
设置difference将在这里工作,它返回 ar1 中不在 ar2 中的唯一值。
np.setdiff1d(df1, df2)
或者以DataFrame的形式获取结果,
pd.DataFrame([np.setdiff1d(df1, df2)])
