我有一個數據幀,如下所示: 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
提交
取消