【发布时间】:2019-06-19 16:13:02
【问题描述】:
我有两个数据框:df1 和 df2。 我想消除 df1 中所有出现的 df2 行。 基本上,这是设置差异运算符,但适用于数据帧。
我的问题与this question 非常相似,但有一个主要变化是 df1 可能根本没有公共行。在这种情况下,如果我们连接两个数据帧然后删除重复项,它仍然不能消除 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,则删除 df2)。这应该怎么做?
【问题讨论】:
-
@OP 你能确认这些是系列还是数据帧?如果它们是系列,那么 isin 将起作用。否则,它不会。
-
@coldspeed,OP 声明该操作需要对行进行,所以绝对是数据帧
-
能否也确认一下逻辑是
the set difference。df2: F,E,G,H会导致相同的结果吗?