我\xe2\x80\x99m 尝试创建一个字典,但是\xe2\x80\x99t 不能让它按照我想要的方式工作。我感觉我\xe2\x80\x99m 如此接近。我的 yelp 数据:
\n\nimport pandas as pd\nfile_rev = 'blah.csv'\n\nreviews=pd.read_csv(file_rev, sep=',',header=0, nrows=10000)\n\ncols = ['user_id', 'business_id', 'stars']\ncat_rev = reviews[cols]\n\nprint cat_rev\nRun Code Online (Sandbox Code Playgroud)\n\ndf:
\n\n user_id business_id stars\n0 Xqd0DzHaiyRqVH3WRG7hzg vcNAWiLM4dR7D2nwwJ7nCA 5\n1 H1kH6QZV7Le4zqTRNxoZow vcNAWiLM4dR7D2nwwJ7nCA 2\n2 zvJCcrpm2yOZrxKffwGQLA vcNAWiLM4dR7D2nwwJ7nCA 4\n3 KBLW4wJA_fwoWmMhiHRVOA vcNAWiLM4dR7D2nwwJ7nCA 4\n4 zvJCcrpm2yOZrxKffwGQLA vcNAWiLM4dR7D2nwwJ7nCA 4\n5 Qrs3EICADUKNFoUq2iHStA vcNAWiLM4dR7D2nwwJ7nCA 1\n6 jE5xVugujSaskAoh2DRx3Q vcNAWiLM4dR7D2nwwJ7nCA 5\n7 QnhQ8G51XbUpVEyWY2Km-A vcNAWiLM4dR7D2nwwJ7nCA 5\n8 tAB7GJpUuaKF4W-3P0d95A vcNAWiLM4dR7D2nwwJ7nCA 1\n9 GP-h9colXgkT79BW7aDJeg vcNAWiLM4dR7D2nwwJ7nCA 5\n10 uK8tzraOp4M5u3uYrqIBXg UsFtqoBl7naz8AVUBZMjQQ 5\nRun Code Online (Sandbox Code Playgroud)\n\n我希望能够将其创建为字典,如下所示:
\n\nabc = {user1 : {business1:star_rating, business2:star_rating\xe2\x80\xa6, \n businessN:star_rating}, \n user2: {} \xe2\x80\xa6 }\nRun Code Online (Sandbox Code Playgroud)\n\n然后要访问,我只需: \nabc[user1]会给我 user1 评论过的所有地点和星星。
\nabc[user1][place1]只会给出相应的星级。
我\xe2\x80\x99已经尝试过to_dictpanda函数。我先尝试groupby,然后dict(list(groupby())),似乎没有什么可以将其转换为我想要的方式。
也不,但几乎:
\n\nddd = cat_rev.set_index('user_id').to_dict(outtype='list')\nRun Code Online (Sandbox Code Playgroud)\n
您可以使用 groupby 和字典理解:
{user_id: pd.Series(grp['stars'].values, index=grp['business_id']).to_dict()
for user_id, grp in df.groupby(['user_id'])}
Run Code Online (Sandbox Code Playgroud)
产量
{'GP-h9colXgkT79BW7aDJeg': {'vcNAWiLM4dR7D2nwwJ7nCA': 5},
'H1kH6QZV7Le4zqTRNxoZow': {'vcNAWiLM4dR7D2nwwJ7nCA': 2},
'KBLW4wJA_fwoWmMhiHRVOA': {'vcNAWiLM4dR7D2nwwJ7nCA': 4},
'QnhQ8G51XbUpVEyWY2Km-A': {'vcNAWiLM4dR7D2nwwJ7nCA': 5},
'Qrs3EICADUKNFoUq2iHStA': {'vcNAWiLM4dR7D2nwwJ7nCA': 1},
'Xqd0DzHaiyRqVH3WRG7hzg': {'vcNAWiLM4dR7D2nwwJ7nCA': 5},
'jE5xVugujSaskAoh2DRx3Q': {'vcNAWiLM4dR7D2nwwJ7nCA': 5},
'tAB7GJpUuaKF4W-3P0d95A': {'vcNAWiLM4dR7D2nwwJ7nCA': 1},
'uK8tzraOp4M5u3uYrqIBXg': {'UsFtqoBl7naz8AVUBZMjQQ': 5},
'zvJCcrpm2yOZrxKffwGQLA': {'vcNAWiLM4dR7D2nwwJ7nCA': 4}}
Run Code Online (Sandbox Code Playgroud)