尝试在networkX中设置节点属性时,“TypeError:'int'对象不可订阅”

时间:2016-03-12 07:40:23

标签: networkx

下面是给出TypeError的代码......

import pandas as pd
import networkx as nx
datamuse = pd.read_csv(NetworkDatasheet.csv',index_col=0)
print(datamuse)
G = nx.DiGraph(datamuse.values)
nx.draw_random(G, with_labels=True)

dc= nx.degree_centrality(G)
bc=nx.betweenness_centrality(G,normalized = True)
ec=nx.eigenvector_centrality(G)

nx.set_node_attributes(G,'degree centrality',dc)
nx.set_node_attributes(G,'betweenness centrality',bc)
nx.set_node_attributes(G,'eigenvector centrality',ec)

G.nodes()[1]['degree centrality']

字典中的值(例如:dc)像0.029411764705882353一样浮动

1 个答案:

答案 0 :(得分:0)

代码的最后一行应替换为:

G.nodes(data=True)[1][1]['degree centrality']

您需要拥有节点的关联属性,因此data=True,否则您只获得节点ID。 然后当你执行G.nodes(data=True)[1]实际上你得到一个元组(nodeId, data_dict)以便访问数据值时,你需要得到第二个元素,因此[1]