私はPythonとnetworkxを使用してネットワークを作成しようとしています。任意の属性を持つNetworkX:新しいグラフに重みをコピーし、重みが重複する
1 2 34
1 4 23
1 5 25
2 4 46
2 5 90
2 12 4
...
とノードデータ(例えば、色、種類、形状)、またTSV:
1 red cat round
2 blue mouse round
3 green rat triangle
4 yellow trex square
私が組み合わせたい私は、TSV(ノード、ノード、重量)としてエッジデータを持っていますこの情報を使用して1つのネットワークを作成します。これまでのところ、すべてが正常に動作します:
ここdf = pd.read_csv('nodes.tsv', sep='\t') # using pandas to read
for idy, row in df.iterrows():
G2.add_node(row[0], color = row[1], type = row[2], shape = row[3])
...
with open('edges.tsv','rb') as edges_file:
G = nx.read_weighted_edgelist(edges_file)
...
G2.add_weighted_edges_from(G.edges(data = True))
、最後の行は問題です。
>>>print(str(G2.edges(data=True))[1:200])
[('1', '2', {'weight': {'weight': 34}}), ('1', '4', {'weight': {'weight': 23}})
どのように私は、これらの二重の '重み' を削除することができますか?これを行うより良い方法はありますか?
各辞書については、dict ['weight'] = dict ['weight'] ['weight']と言っていますが、詳細についてはわかりませんが、それはいくつかのタプル操作で動作します。 – pointerless