Diccionario de listas anidadas para pandas DataFrame

Estoy tratando de aprender cómo funcionan los pandas pero asumo que me estoy perdiendo algo obvio.

Tengo un archivo con este aspecto:

dict_spl ={'doc1':[[('word11',1,1),('word12',1,2)]], 'doc2':[[('word21',2,1),('word22',2,2)]]} 

Y estoy tratando de obtener un DataFrame de pandas este aspecto:

 # doc1 word11 1 1 # doc1 word12 1 2 # doc2 word21 2 1 # doc2 word22 2 2 

No he encontrado una manera de crear columnas nuevas y filas nuevas mientras duplicaba los valores comunes.

Puedes usar:

 a = [[(k, *y) for y in v[0]] for k,v in dict_spl.items()] a = [item for sublist in a for item in sublist] df = pd.DataFrame(a, columns=list('abcd')) print (df) abcd 0 doc1 word11 1 1 1 doc1 word12 1 2 2 doc2 word21 2 1 3 doc2 word22 2 2 

Siento que hay una mejor solución, así que pregunté aquí :

 #Martijn Pieters♦'s solution a = [(k, *t) for k, v in dict_spl.items() for t in v[0]] df = pd.DataFrame(a, columns=list('abcd')) print (df) abcd 0 doc2 word21 2 1 1 doc2 word22 2 2 2 doc1 word11 1 1 3 doc1 word12 1 2