我有一个数据帧,如下所示: Friend A Friend B Score0 Walter John 221 Walter Jack 322 Fred John 103 Caleb Jack 5 我想制作的是这样的:{"Walter": {"John": 22, "Jack": 32}, "Fred": {"John": 10}, "Caleb": {"Jack": 5}}到目前为止,我所拥有的是这样的:x = Network.groupby("Friend A")[["Friend A", "Friend B", "Score"]]我尝试了以下操作:x.apply(list).to_dict()但这不是我想要得到的结果。我怎样才能达到这个结果?
2 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
In [17]: df.groupby("Friend A").apply(lambda x: x.set_index("Friend B")['Score'].to_dict()).to_dict()
Out[17]:
{'Caleb': {'Jack': 5},
'Fred': {'John': 10},
'Walter': {'Jack': 32, 'John': 22}}
扬帆大鱼
TA贡献1799条经验 获得超9个赞
a = Network.groupby("Friend A").apply(lambda x: dict(zip(x["Friend B"], x["Score"]))).to_dict()
添加回答
举报
0/150
提交
取消