pandas - проект на двустранна мрежа от dataframe

Имам рамка от данни, представляваща претеглена двустранна мрежа като следното:

L1,L2,w
1,A,0.9
2,A,0.2
3,A,0.5
1,B,0.9
2,B,0.8

където възлите в колоната L1 са свързани с възлите в колоната L2 с тегловна стойност, свързана с всеки ръб (w).

Двустранна мрежа

Бих искал да проектирам мрежата на ниво L1. Първата стъпка е свързване на L1 стойности, ако те са свързани със същите L2 стойности, умножаване на теглата, като например:

1,2,0.9*0.2
2,3,0.2*0.5
1,3,0.9*0.5
1,2,0.9*0.8

Втората стъпка е изграждането на нова рамка с данни (списък с претеглени ръбове), сумираща теглата на дублиращите се ръбове:

1,2,0.9*0.2 + 0.9*0.8
2,3,0.2*0.5
1,3,0.9*0.5

Знам, че е малко странно; Опитах същия подход, използвайки двустранната функция networkx, но е малко трудно да се работи върху тегла в нея, така че бих предпочел да работя с рамка от данни на pandas.


person Fabio Lamanna    schedule 09.07.2015    source източник