думаю вам нужно чуть лучше изучить типы и структуры данных в pure python, поработать с ними, иначе так на каждой задаче будете застревать
Тут из старого списка создается новый список плоских словарей
new_data=list()
while len(old_data)>0:
flat_d=dict()
for k,tn in old_data.pop().items(): #old_data.pop() is {A:{title,name},B:{title,name}}
flat_d[tn['title']]=tn['name']
new_data.appned(flat_d)
new_df=pd.DataFrame(new_data)