user2896120:
Tengo una trama de datos que tiene este aspecto:
Friend A Friend B Score
0 Walter John 22
1 Walter Jack 32
2 Fred John 10
3 Caleb Jack 5
Lo que me gustaría a los productos es la siguiente:
{"Walter": {"John": 22, "Jack": 32}, "Fred": {"John": 10}, "Caleb": {"Jack": 5}}
Lo que tengo hasta ahora es la siguiente:
x = Network.groupby("Friend A")[["Friend A", "Friend B", "Score"]]
He intentado hacer lo siguiente:
x.apply(list).to_dict()
Pero este no es el resultado que me gustaría conseguir. ¿Cómo puedo lograr este resultado?
Randy:
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}}