créer des pandas dataframe à partir du dictionnaire des dictionnaires

J'ai un dictionnaire de dictionnaires de la forme:

{'user':{movie:rating} }

Par exemple,

{Jill': {'Avenger: Age of Ultron': 7.0,
                            'Django Unchained': 6.5,
                            'Gone Girl': 9.0,
                            'Kill the Messenger': 8.0}
'Toby': {'Avenger: Age of Ultron': 8.5,
                                'Django Unchained': 9.0,
                                'Zoolander': 2.0}}

Je veux convertir ce dict des dicts dans une pandas dataframe avec la colonne 1, le nom d'utilisateur et les autres colonnes du film les cotes c'est à dire

user  Gone_Girl  Horrible_Bosses_2  Django_Unchained  Zoolander etc. \

Cependant, certains utilisateurs n'ont pas évalué les films et donc, ces films ne sont pas inclus dans les valeurs() pour que l'utilisateur touche(). Il serait bon, dans ces cas, seulement pour remplir l'entrée avec NaN.

Pour l'instant, je itérer sur les touches, remplir une liste, et ensuite utiliser cette liste pour créer un dataframe:

data=[] 
for i,key in enumerate(movie_user_preferences.keys() ):
    try:            
        data.append((key
                    ,movie_user_preferences[key]['Gone Girl']
                    ,movie_user_preferences[key]['Horrible Bosses 2']
                    ,movie_user_preferences[key]['Django Unchained']
                    ,movie_user_preferences[key]['Zoolander']
                    ,movie_user_preferences[key]['Avenger: Age of Ultron']
                    ,movie_user_preferences[key]['Kill the Messenger']))
    # if no entry, skip
    except:
        pass 
df=pd.DataFrame(data=data,columns=['user','Gone_Girl','Horrible_Bosses_2','Django_Unchained','Zoolander','Avenger_Age_of_Ultron','Kill_the_Messenger'])

Mais cela ne me donne un dataframe des utilisateurs qui ont évalué tous les films de la série.

Mon but est d'ajouter à la liste de données par itération sur le film étiquettes (plutôt que la force brute de l'approche ci-dessus) et, d'autre part, de créer un dataframe qui inclut tous les utilisateurs et les valeurs null dans les éléments qui n'ont pas de films.

OriginalL'auteur Feynman27 | 2015-10-15