Los pandas encuentran duplicados en valores cruzados

Tengo un marco de datos y quiero eliminar filas duplicadas, que tienen los mismos valores, pero en diferentes columnas:

df = pd.DataFrame(columns=['a','b','c','d'], index=['1','2','3'])
df.loc['1'] = pd.Series({'a':'x','b':'y','c':'e','d':'f'})
df.loc['2'] = pd.Series({'a':'e','b':'f','c':'x','d':'y'})
df.loc['3'] = pd.Series({'a':'w','b':'v','c':'s','d':'t'})

df
Out[8]: 
   a  b  c  d
1  x  y  e  f
2  e  f  x  y
3  w  v  s  t

Las filas [1], [2] tienen los valores {x, y, e, f}, pero están organizadas en una cruz, es decir, si intercambia las columnas c, d con a, b en la fila [2], tendría un duplicado. Quiero soltar estas líneas y solo mantener una, para tener el resultado final:

df_new
Out[20]: 
   a  b  c  d
1  x  y  e  f
3  w  v  s  t

¿Cómo puedo lograr eso de manera eficiente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta