print(G1.nodes(data=True)) print(G1.edges(data=True))改成存储这两份数据
时间: 2024-12-17 08:19:19 浏览: 1
`print(G1.nodes(data=True))` 和 `print(G1.edges(data=True))` 分别用于打印图 `G1` 的所有节点及其属性,以及所有边及其相关的权重。如果你想要将这些数据存储起来而不是直接打印,可以使用pandas DataFrame结构,因为网络X图通常不会直接支持这样的直接序列化。
首先,你可以创建空的数据字典和边缘字典来储存节点和边的信息:
```python
node_data = {}
edge_data = {}
for node, attr_dict in G1.nodes(data=True):
node_data[node] = attr_dict
for edge, attr_dict in G1.edges(data=True):
edge_data[(edge[0], edge[1])] = attr_dict # 对于有向图,边的方向可能很重要,这里以元组形式存储
```
在这里,`node_data` 字典中的键是节点名,值是包含额外属性的字典;而`edge_data` 中的键是对的(源节点,目标节点),值是边的属性字典,包含旅行量等信息。
然后,你可以将这些字典转换成DataFrame,以便更方便地进行后续处理或存储:
```python
import pandas as pd
node_df = pd.DataFrame.from_dict(node_data, orient='index', columns=['Node', 'Additional attributes'])
edge_df = pd.DataFrame.from_dict(edge_data, orient='index', columns=['Source', 'Destination', 'Weight'])
# 存储至CSV文件
node_df.to_csv('nodes.csv')
edge_df.to_csv('edges.csv')
```
这样就分别保存了节点和边的数据到CSV文件中。
阅读全文