从另一个DF中出现的DF中删除单词(Pandas,Python3)

时间:2014-09-25 22:15:05

标签: python-3.x pandas

现在,我有一个像这样的DF1:

 Words              Words1                Words2  
 Shell Shocked      Big Bang Theory       Hot Potato 
 Falling Down       Tiger Blood           Blue Suede Shoe 
 A Big Window       Mouse Trap
 Look Around

我希望做的是做一些等效的vlookup并从DF1 中的列中删除所有出现在DF2中的单词,如下所示:

   KW
Shell Shocked
Tiger Blood 
Blue Suede Shoe
A Big Window

所以我会离开......

   Words              Words1                Words2  
 Falling Down      Big Bang Theory        Hot Potato               
 Look Around       Mouse Trap

以下是我的尝试:

  DF1 = DF1[~DF1['Words'].isin(DF2)]
  DF1 = DF1[~DF1['Words1'].isin(DF2)]
  DF1 = DF1[~DF1['Words2'].isin(DF2)]

这个实际上没有过滤任何东西(也许我这样做不正确)。我也尝试过:

 set_B = set(onlykw.itertuples(index=False))
 mask = [x not in set_B for x in A.itertuples(index=False)]

除了'True'之外什么都没有返回(我在另一个SO帖子上发现了这个,我不确定它是如何工作的)。 有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

DF2中的列名是KW吗?如果是这样,那么你需要

DF1 = DF1[~DF1['Words'].isin(DF2['KW'])]