如何从datafram构建网络

2024-06-16 08:51:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

User ID  Item   Category
U1       A      Furniture
U2       B      Sports
U3       C      Furniture
U2       A      Grocery
U3       B      Sports
U2.      B      Sports....

我想做的是为那些购买了3件以上物品的用户制作一本字典,这些物品与另一个用户的物品相同。例如:

假设用户U1购买了项目A、B、C、D、E、L、M。用户U2作为用户U1购买了项目A、B、C,即3个公共项目。用户U3购买了B,C,L

因此,如果我想找到所有购买了至少3个项目(如U1)的用户,应该以以下形式返回字典

{U2: [A, B, C], U3:[B, C, L],....} 

我试过用groupby()来做,但是没有用。我如何做到这一点

谢谢


Tags: 数据项目用户id字典item物品category
1条回答
网友
1楼 · 发布于 2024-06-16 08:51:59

IIUC公司

ID='U1'
n=1
Ux=df.loc[df.UserID==ID,'Item'].tolist()
s=df.loc[df.Item.isin(Ux)&~df.UserID.isin([ID]),].groupby('UserID').Item.count()
s1=s[s>=n].index.tolist()

d=df.loc[df.UserID.isin(s1),].groupby('UserID').Item.apply(list).to_dict()


d
Out[156]: {'U3': ['C'], 'U4': ['A']}

相关问题 更多 >