2014-09-25 56 views
0

,我有一個DF1這樣的:眼下刪除單詞從DF出現在另一個DF(熊貓,Python3)

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)] 

這回不過是「真」(我發現這在另一個SO後,我不知道它是如何工作的準確)。 有沒有人有任何想法如何做到這一點?

回答

0

KW DF2中的列名?如果是這樣,那麼你需要

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

啊,就這樣!總是最簡單的解決方案...謝謝你:)。 SO會讓我接受 – user3682157 2014-09-25 22:24:55

+0

@ user3682157是的,我自己犯了這個錯誤足夠多了。 – chrisaycock 2014-09-25 22:40:41