我已经从Stanford Network Analysis Project下载了加州公路网数据集.数据是一个文本文件,可以转换为两列的EXCEL文件.第一列用于开始 node ,第二列用于结束 node .

# FromNodeId    ToNodeId
       0           1
       0           2
       0          469
       1           0
       1           6
       1          385
       2           0
       2           3
      469          0
      469         380
      469        37415
       6           1
       6           5
      385          1
      385         384
      385         386
       3           2
       3           4
       3          419
       3          422

现在,我如何才能将这些数据转换为邻接矩阵或任何其他对象来分析图形呢?例如用于计算度分布、聚类系数等. 如果您能帮助我将这些数据表示为使用Python和相关库的图形,我将非常感激.

推荐答案

要在Python中将Excel文件的数据表示为有向图,可以使用Pandas和networkx库.以下是步骤:

使用PANDA阅读Excel文件:

import pandas as pd

df = pd.read_excel('filename.xlsx')

使用networkx创建有向图:

import networkx as nx

G = nx.DiGraph()
Iterate over the rows of the dataframe and add nodes and edges to the graph:


for index, row in df.iterrows():
    source_node = row['Source']
    target_node = row['Target']
    weight = row['Weight']
    G.add_edge(source_node, target_node, weight=weight)

在本例中,我们假设Excel文件有三列:源、目标和权重.源和目标是两个 node 的名称,权重表示它们之间的权重/边成本.

然后,您可以使用matplotlib或您 Select 的任何其他库来可视化图形:

import matplotlib.pyplot as plt

pos = nx.spring_layout(G)

nx.draw_networkx_nodes(G, pos, node_size=500)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)

plt.show()

这段代码将使用Excel文件中的数据创建有向图,并在屏幕上可视化它.

Python相关问答推荐

如何将uint 16表示为float 16

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

每个组每第n行就有Pandas

NumPy中的右矩阵划分,还有比NP.linalg.inv()更好的方法吗?

在Pandas 日历中插入一行

理解Python的二分库:澄清bisect_left的使用

通过优化空间在Python中的饼图中添加标签

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

Select 用a和i标签包裹的复选框?

使用新的类型语法正确注释ParamSecdecorator (3.12)

将整组数组拆分为最小值与最大值之和的子数组

管道冻结和管道卸载

在Mac上安装ipython

如何在WSL2中更新Python到最新版本(3.12.2)?

如何从数据库上传数据到html?

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

删除marplotlib条形图上的底边

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

Flash只从html表单中获取一个值

从列表中获取n个元素,其中list [i][0]== value''