Ваш вопрос не слишком ясен, но делает ли это то, что вы хотите?
>>> D = df.groupby(['User','ASIN'])['Rating'].apply(list).to_dict()
>>> {key[0]:{key[1]:val} for key, val in D.items()}
{('A23VKINWRY6J92', '1476783284'): [5], ('A3HC4SRK7B2AXR', '1496177029'): [5], ('AE12HJWB5ODOD', 'B00K2GAUC0'): [4], ('AL4RYO265J1G', '061579615X'): [3]}
Так что, если это присвоено my_dict
, то у вас есть
>>> my_dict['A23VKINWRY6J92']['1476783284']
[5]
и т.д.