create pandas dataframe from dictionary of dictionaries

后端 未结 2 1921
醉梦人生
醉梦人生 2020-12-13 12:32

I have a dictionary of dictionaries of the form:

{\'user\':{movie:rating} }

For example,

{Jill\': {\'Avenger: Age of Ultro         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-13 12:56

    This brute-force approach also appears to work, but iterating over the movie labels would still be more robust in my opinion.

    data=[] 
    for i,key in enumerate(movie_user_preferences.keys() ):
        try:            
            data.append((key
                        ,movie_user_preferences[key]['Gone Girl'] if 'Gone Girl' in movie_user_preferences[key] else 'NaN'
                        ,movie_user_preferences[key]['Horrible Bosses 2'] if 'Horrible Bosses 2' in movie_user_preferences[key] else 'NaN'
                        ,movie_user_preferences[key]['Django Unchained'] if 'Django Unchained' in movie_user_preferences[key] else 'NaN'
                        ,movie_user_preferences[key]['Zoolander'] if 'Zoolander' in movie_user_preferences[key] else 'NaN'
                        ,movie_user_preferences[key]['Avenger: Age of Ultron'] if 'Avenger: Age of Ultron' in movie_user_preferences[key] else 'NaN'
                        ,movie_user_preferences[key]['Kill the Messenger'] if 'Kill the Messenger' in movie_user_preferences[key] else 'NaN' ))
    
        # if no entry, skip
        except:
            pass
    
    
     user Gone_Girl Horrible_Bosses_2  Django_Unchained Zoolander  \
     0      Sam         6                 3               7.5         7   
     1      Max        10                 6               7.0        10   
     2   Robert       NaN                 5               7.0         9   
     3     Toby       NaN               NaN               9.0         2   
     4    Julia       6.5               NaN               6.0       6.5   
     5  William         7                 4               8.0         4   
     6     Jill         9               NaN               6.5       NaN   
    
     Avenger_Age_of_Ultron Kill_the_Messenger  
     0                   10.0                5.5  
     1                    7.0                  5  
     2                    8.0                  9  
     3                    8.5                NaN  
     4                   10.0                  6  
     5                    6.0                6.5  
     6                    7.0                  8  
    

提交回复
热议问题