dataframeから辞書型への変換について


dataframeのデータを辞書型に格納したいのですが、良い方法を教えてください。  
画像のようなdataframeから下記のような辞書データを作りたいです。  
movie_dict = {  
'UserId(1)':{  
'MovieId(68646)': 10,  
'MovieId(113277)': 10},  
'UserId(2)':{...

[![画像の説明をここに入力](https://i.stack.imgur.com/doqwE.jpg)](https://i.stack.imgur.com/doqwE.jpg)




とりあえず1ライナーで書いてみました。

[code]

    {'UserId({})'.format(data[0]):{'MovieId({})'.format(record['MovieId']):record['Rating'] for record in data[1].to_dict('records')} for data in df.groupby('UserId')}
    
[/code]

方針としては`groupby`でユーザごとのデータフレームにわけて、そのデータフレームのレコードごとに処理します。ループを明示的に書くと

[code]

    movie_dict = {}
    for data in df.groupby('UserId'):
        user_key = 'UserId({})'.format(data[0])
        movie_dict[user_key] = {}
        for record in data[1].to_dict('records'):
            movie_dict[user_key]['MovieId({})'.format(record['MovieId'])] = record['Rating']
    
[/code]




とりあえず1ライナーで書いてみました。

[code]

    {'UserId({})'.format(data[0]):{'MovieId({})'.format(record['MovieId']):record['Rating'] for record in data[1].to_dict('records')} for data in df.groupby('UserId')}
    
[/code]

方針としては`groupby`でユーザごとのデータフレームにわけて、そのデータフレームのレコードごとに処理します。ループを明示的に書くと

[code]

    movie_dict = {}
    for data in df.groupby('UserId'):
        user_key = 'UserId({})'.format(data[0])
        movie_dict[user_key] = {}
        for record in data[1].to_dict('records'):
            movie_dict[user_key]['MovieId({})'.format(record['MovieId'])] = record['Rating']
    
[/code]

