猿问

从 groupby 创建字典的字典

我有一个数据帧,如下所示:


    Friend A        Friend B    Score

0    Walter          John        22

1    Walter          Jack        32

2    Fred            John        10

3    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()

但这不是我想要得到的结果。我怎样才能达到这个结果?


小怪兽爱吃肉
浏览 66回答 2
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}}

扬帆大鱼

a = Network.groupby("Friend A").apply(lambda x: dict(zip(x["Friend B"], x["Score"]))).to_dict()
随时随地看视频慕课网APP

相关分类

Python
我要回答