为了账号安全,请及时绑定邮箱和手机立即绑定

从 groupby 创建字典的字典

从 groupby 创建字典的字典

小怪兽爱吃肉 2022-09-20 17:37:41
我有一个数据帧,如下所示:    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}}


查看完整回答
反对 回复 2022-09-20
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

a = Network.groupby("Friend A").apply(lambda x: dict(zip(x["Friend B"], x["Score"]))).to_dict()



查看完整回答
反对 回复 2022-09-20
  • 2 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信