Pandas比较两个数据帧并删除一列中的匹配项

GNM*_*O11 18 python pandas

我有两个独立的pandas数据帧(df1df2),它们有多个列,但只有一个是共同的('text').

我想找到在列的任何行中df2没有匹配df2df1具有共同点的每一行.

DF1

A    B    text
45   2    score
33   5    miss
20   1    score
Run Code Online (Sandbox Code Playgroud)

DF2

C    D    text
.5   2    shot
.3   2    shot
.3   1    miss
Run Code Online (Sandbox Code Playgroud)

结果df(删除包含未命中的行,因为它出现在df1中)

C    D    text
.5   2    shot
.3   2    shot
Run Code Online (Sandbox Code Playgroud)

是否可以isin在此方案中使用该方法?

Ami*_*ory 29

正如你所问,你可以有效地使用它isin(不需要使用昂贵的merges).

>>> df2[~df2.text.isin(df1.text.values)]
C   D   text
0   0.5 2   shot
1   0.3 2   shot
Run Code Online (Sandbox Code Playgroud)