надеюсь, что вы здоровы!
Я пытаюсь преобразовать следующую матрицу данных, которая показывает, какие приложения общего доступа используют люди, в двудольный сетевой график - где есть два типа узлов, пользователи и приложения.
Кроме того, я хотел бы иметь взвешенные ребра, чтобы указать частоту использования, и значения, указывающие количество новых соединений, выполненных с каждым приложением, но на данный момент, любая помощь только с простым графом, соединяющим ребра и узлы, будет будь великолепен!
Текущий фрейм данных -
df.head(10)
Out[20]:
Unnamed: 0 Airbnb Peerby ... Marktplaats Together Snappcar
0 James 1 1 ... 0 1 0
1 Andrew 1 0 ... 0 0 1
2 Sarah 1 0 ... 0 1 0
3 Nick 0 1 ... 1 0 1
4 Mary 0 0 ... 0 0 0
5 Julia 1 1 ... 1 0 1
6 Steve 0 0 ... 0 1 1
7 Mike 1 0 ... 1 0 1
[8 rows x 9 columns]
Сейчас я ухожу от этого, но не уверен, как заполнить соответствующий источник и цель или как это работает с графиком с двумя типы узлов -
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
#Importing data
df = pd.read_csv("P2P Trial 1.csv")
edges = pd.DataFrame({'source' : [],
'target' : [],
'weight' : []})
nodes = pd.DataFrame({'node' : [''],
'name' : [''],
'Apps' : ['']})
G = nx.from_pandas_dataframe(edges, 'source', 'target', 'weight')
Я знаю, что мне еще далеко, но я просто пытаюсь научиться и начать работать.
Любая помощь или указывает правильное направление очень ценится! :)
Ссылки на учебные ресурсы также приветствуются :)!