Я приму этот ввод:
dict_1 = {'a': ['b','c','d','e'],'b': ['a','c','d','e'],'p': ['q','r','s']}
dict_2 = {'a': ['x','y','z','n'],'b': ['u','v','w','x','y','z','n']}
, если вы не можете легко получить его с помощью dict_i = {k: literal_eval(v) for k,v in dict_i.items()}
Вы можете использовать понимание, чтобы выбрать ожидаемые данные, и использовать его для создайте свой фрейм данных:
data = [(k, v1, v2) for k in dict_1 if k in dict_2
for v1, v2 in zip(dict_1[k], dict_2[k])]
df = pd.DataFrame(data)
он дает:
0 1 2
0 a b x
1 a c y
2 a d z
3 a e n
4 b a u
5 b c v
6 b d w
7 b e x