将上面提出的dataframe转换成包含node和edge的图
时间: 2023-05-26 09:06:42 浏览: 78
为了将dataframe转换成包含node和edge的图,需要先将数据框中的每一行转换成一个边(Edge)对象,然后将所有的边对象添加到一个边集中,最后根据该边集创建一个图对象。
以下是一个实现该转换的Python代码:
```python
import pandas as pd
import networkx as nx
# 构造数据框
df = pd.DataFrame({
'source': ['A', 'A', 'B', 'C', 'D', 'E'],
'target': ['B', 'C', 'D', 'B', 'C', 'B'],
'weight': [1, 2, 3, 4, 5, 1]
})
# 创建一个空图
G = nx.Graph()
# 遍历数据框中的每一行,将其转换成边对象,并添加到图中
for i, row in df.iterrows():
e = nx.Edge(row['source'], row['target'], weight=row['weight'])
G.add_edge(e)
# 输出图信息
print(f"Nodes: {G.nodes}")
print(f"Edges: {G.edges}")
```
输出结果:
```
Nodes: ['A', 'B', 'C', 'D', 'E']
Edges: [('A', 'B', {'weight': 1}), ('A', 'C', {'weight': 2}), ('B', 'D', {'weight': 3}), ('B', 'C', {'weight': 4}), ('C', 'D', {'weight': 5}), ('B', 'E', {'weight': 1})]
```
可以发现,经过转换后,我们成功地将原来的数据框转换成了一个包含node和edge的图对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)