0
import networkx as nx
import pandas as pd
data1 = { 'node1': [1,1,1,2],
'node2': [2,3,6,4],
'weight': [1,1,1,1], }
df1 = pd.DataFrame(data1, columns = ['node1','node2','weight'])
df1.to_csv('training.csv')
df=pd.read_csv('training.csv')
G=nx.from_pandas_dataframe(df1,'node1','node2','weight')
print df1
Adjtraining = nx.adjacency_matrix(G)
print Adjtraining.todense()
출력 :networkx
[[0 1 1 0 1]
[1 0 0 1 0]
[1 0 0 0 0]
[0 1 0 0 0]
[1 0 0 0 0]]
그러나 실제 출력은해야한다 : 우리가 dataframe에서 볼 수있는 노드가 1 2이기 때문에
[[0 1 1 0 0 1]
[1 0 0 1 0 0]
[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 0 0 0 0]
[1 0 0 0 0 0]]
입니다 3 4 & 6. 노드 5는 노드 목록에 없습니다. 그러나 여전히 인접 행렬에 포함되어야하지만 네트워크 x에서는 무시됩니다.
2 질문 : 1) training.csv을 제공 할 수 있습니까? 2) networkx가 노드 5의 존재에 대해 알아야하는 이유가 무엇입니까? – Joel
@Joel Oops df1은 훈련을위한 것이 었습니다 .csv 죄송합니다. 편집했습니다. 인접 행렬에서 행과 열은 그래프의 노드를 나타내므로 인접 행렬에 5 행 5 열 그래프가 5 개의 노드를 가지고있는 것처럼 보일 것입니다. 사실 6 개의 노드가 있습니다. 단지 5 개의 노드가 그래프에없는 것입니다. –