Pandas 要绘制的数据帧
Pandas DataFrames to Graph
给定两个数据帧,一个用于节点,另一个用于边。我怎样才能将它们放入包含我拥有的属性列的 networkx 图中?
示例:
df_nodes
ID
Label
Attribute_W
Attribute_X
0
0
Japan
Asia
81
1
1
Mexico
America
52
2
2
Ireland
Europe
353
df_Edges
Target
Source
Attribute_Y
Attribute_Z
0
0
1
10
1
1
0
2
15
2
2
1
2
20
3
我尝试使用 G = nx.from_pandas_edgelist 但它 returns 是一个属性错误。而且我不确定如何在图形的构造中添加属性。
我正在寻找输出一个 graphml 文件 nx.write_graphml(G, "My_File.graphml")
谢谢。
我也不知道如何通过 from_pandas_edgelist 包含节点属性。但是,您可以在几行代码中使用 nx.add_edges_from 和 nx.add_nodes_from 来实现您想要的效果。
G = nx.Graph()
node_label_attr = "Label"
for index,row in df_nodes.iterrows():
as_dict = row.to_dict()
label = as_dict[node_label_attr]
del as_dict[node_label_attr]
G.add_nodes_from([(label, as_dict)])
for index,row in df_Edges.iterrows():
as_dict = row.to_dict()
source = as_dict["Source"]
target = as_dict["Target"]
del as_dict["Source"]
del as_dict["Target"]
G.add_edges_from([(source,target,as_dict)])
您遍历数据框的行并将它们转换为 nx.add_nodes_from 和 nx.add_edges_from 可以理解的字典。
给定两个数据帧,一个用于节点,另一个用于边。我怎样才能将它们放入包含我拥有的属性列的 networkx 图中?
示例:
df_nodes
ID | Label | Attribute_W | Attribute_X | |
---|---|---|---|---|
0 | 0 | Japan | Asia | 81 |
1 | 1 | Mexico | America | 52 |
2 | 2 | Ireland | Europe | 353 |
df_Edges
Target | Source | Attribute_Y | Attribute_Z | |
---|---|---|---|---|
0 | 0 | 1 | 10 | 1 |
1 | 0 | 2 | 15 | 2 |
2 | 1 | 2 | 20 | 3 |
我尝试使用 G = nx.from_pandas_edgelist 但它 returns 是一个属性错误。而且我不确定如何在图形的构造中添加属性。
我正在寻找输出一个 graphml 文件 nx.write_graphml(G, "My_File.graphml")
谢谢。
我也不知道如何通过 from_pandas_edgelist 包含节点属性。但是,您可以在几行代码中使用 nx.add_edges_from 和 nx.add_nodes_from 来实现您想要的效果。
G = nx.Graph()
node_label_attr = "Label"
for index,row in df_nodes.iterrows():
as_dict = row.to_dict()
label = as_dict[node_label_attr]
del as_dict[node_label_attr]
G.add_nodes_from([(label, as_dict)])
for index,row in df_Edges.iterrows():
as_dict = row.to_dict()
source = as_dict["Source"]
target = as_dict["Target"]
del as_dict["Source"]
del as_dict["Target"]
G.add_edges_from([(source,target,as_dict)])
您遍历数据框的行并将它们转换为 nx.add_nodes_from 和 nx.add_edges_from 可以理解的字典。