我有以下形式的字典詞典:從詞典的詞典創建大熊貓據幀
{'user':{movie:rating} }
例如,
{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}}
我想http://stardict.sourceforge.net/Dictionaries.php下載這個字典轉換成大熊貓數據幀與第1列用戶名和其他列電影評級即
user Gone_Girl Horrible_Bosses_2 Django_Unchained Zoolander etc. \
Howev呃,有些用戶沒有對電影進行評分,所以這些電影不包含在該用戶鍵()的值()中。在這些情況下,只需填寫NaN即可。
截至目前,我遍歷鍵,填寫清單,然後使用這個列表創建一個數據幀:
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'])
但這只是給了我誰額定所有的電影中的用戶的數據幀集合。
我的目標是通過遍歷電影標籤(而不是上面顯示的蠻力方法),並追加到數據列表,其次,創建一個數據幀包括所有用戶,並在做的元素放在空值沒有電影評級。
有沒有辦法讓用戶命名一個單獨的列而不是索引? – Feynman27
pd.DataFrame.from_dict(d,orient ='index')。reset_index() –
很好。謝謝! – Feynman27