Pandas comparan dos marcos de datos y eliminan lo que coincide en una columna

Tengo dos marcos de datos de pandas ( df1 y df2 ) que tienen varias columnas, pero solo una en común (“texto”).

Me gustaría encontrar cada fila en df2 que no tenga una coincidencia en ninguna de las filas de la columna que df2 y df1 tienen en común.

df1

 AB text 45 2 score 33 5 miss 20 1 score 

df2

 CD text .5 2 shot .3 2 shot .3 1 miss 

Resultado df (eliminar la fila que contiene miss ya que ocurre en df1)

 CD text .5 2 shot .3 2 shot 

¿Es posible utilizar el método isin en este escenario?

Como lo pidió, puede hacerlo de manera eficiente utilizando isin (sin tener que recurrir a merge costosas).

 >>> df2[~df2.text.isin(df1.text.values)] CD text 0 0.5 2 shot 1 0.3 2 shot 

Puedes fusionarlos y mantener solo las líneas que tienen un NaN.

 df2[pd.merge(df1, df2, how='outer').isnull().any(axis=1)] 

o puedes usar isin :

 df2[~df2.text.isin(df1.text)] 

EDITAR:

 import numpy as np mergeddf = pd.merge(df2,df1, how="left") result = mergeddf[(np.isnan(mergeddf['A']))][['C','D','text']]