networkx を使用して DiGraph を作成しようとしています。を使用しadd_edges_from()
たいのですが、エッジとそのデータを 3 つのタプルから生成したいと考えています。
CSVファイルからデータをインポートしています。ID (ノードの最初のセット) 用、名前のセット (ノードの 2 番目のセット) 用、容量 (ファイルにヘッダーなし) 用の 3 つの列があります。そこで、ID と容量の辞書を作成しました。
dictionary = dict(zip(id, capacity))
次に、エッジ データを含むタプルを圧縮しました。
List = zip(id, name, capacity)
しかし、次の行を実行すると、アサーション エラーが発生します。
G.add_edges_from(List, 'weight': 1)
誰かがこの問題で私を助けることができますか? 私は一週間運がなかったので試しました。
PS私はプログラミングの初心者です。
編集:
だから、私は次の解決策を見つけました。正直なところ、それがどのように機能するかはわかりませんが、うまくいきました!コードは次のとおりです。
import networkx as nx
import csv
G = nx.DiGraph()
capacity_dict = dict(zip(zip(id, name),capacity))
List = zip(id, name, capacity)
G.add_edges_from(capacity_dict, weight=1)
for u,v,d in List:
G[u][v]['capacity']=d
今私が実行すると:
G.edges(data=True)
結果は次のようになります。
[(2.0, 'First', {'capacity': 1.0, 'weight': 1}), (3.0, 'Second', {'capacity': 2.0, 'weight': 1})]
ネットワークシンプレックスを使用しています。現在、フローの ID のみを表示しているため、flowDict の出力をよりわかりやすくする方法を見つけようとしています。(おそらく、ID のみを使用する代わりに、それらをデータベースに入力して、データの行全体を返そうとします)。