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



现在,我有一个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帖子上发现了这一点,我不确定它到底是如何工作的)有人知道如何做到这一点吗

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

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

最新更新