python panda: devuelve índices de filas comunes

Disculpas, si esta es una pregunta bastante nueva. Estaba tratando de encontrar qué filas son comunes entre dos marcos de datos. Los valores de retorno deben ser los índices de fila de df2 que son comunes con df1. Mi ejemplo torpe:

df1 = pd.DataFrame({'col1':['cx','cx','cx2'], 'col2':[1,4,12]})
df1['col2'] = df1['col2'].map(str);
df2 = pd.DataFrame({'col1':['cx','cx','cx','cx','cx2','cx2'], 'col2':[1,3,5,10,12,12]})
df2['col2'] = df2['col2'].map(str);

df1['idx'] = df1[['col1','col2']].apply(lambda x: '_'.join(x),axis=1);
df2['idx'] = df2[['col1','col2']].apply(lambda x: '_'.join(x),axis=1);

df1['idx_values'] = df1.index.values
df2['idx_values'] = df2.index.values

df3 = pd.merge(df1,df2,on = 'idx');
myindexes = df3['idx_values_y'];

myindexes.to_csv(idir + 'test.txt',sep='\t',index = False);

Los valores de retorno deben ser [0,4,5]. Sería genial hacer esto de manera eficiente, ya que los dos marcos de datos tendrían varios millones de filas.

¡Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta