python panda: retorna índices de linhas comuns

Desculpas, se esta é uma pergunta relativamente recente. Eu estava tentando descobrir quais linhas são comuns entre dois quadros de dados. Os valores de retorno devem ser os índices de linha do df2 comuns ao df1. Meu exemplo desajeitado:

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

Os valores de retorno devem ser [0,4,5]. Seria ótimo fazer isso com eficiência, pois os dois quadros de dados teriam vários milhões de linhas.

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion