python - 为大 id 数创建邻接矩阵

标签 python networkx openstreetmap adjacency-matrix

我从 Openstreetmap 中提取了一些道路数据十字路口之间的关系用 node 表示和每个 node有一个 id ,提取的数据已经转换为形状为(50,2)的数据框因为我正在尝试在小面积土地上实现
数据框看起来像这样

    id_1        id_2
0     42807002  8219742091
1   8219742091  8219737904
2   8219737904    42807004
3     42839143  8219742075
4   8219742075    42807002
5     42807002    42839146
6     42839146    42839155
7     42839155    42839161
8     42839161    42839168
9     42839168  2875111804
10  2875111804    42839172
11    42839146  8219742083
12  8219742083  8219742024
13  8219742024    42845825
14    42839161  8219742048
15  8219742048  8219742063
16  8219742063    42862789
17    42839155  8219742066
18  8219742066  5427796641
19  5427796641  5427796639
20  5427796639  5427796630 
为了进一步说明,这是我的节点之间的图关系。
enter image description here
每条记录表明id_1和id_2之间存在链接。
我想创建一个 adjacency matrix对于这个数据框,但我有一个很大的问题,即 id 名称太大(最大值是 8219742092)。我尝试使用 networkx 使用此代码
G = nx.from_pandas_adjacency(df)
但正如我所料,自从 networkx 起它就不起作用了adjacency需要从 0 到 8219742092 的节点,而数字 8219742092 太大了,无法从中创建数据集。
如何根据这些数据制作邻接矩阵?
小提示:我无法重命名 ID。

最佳答案

尝试使用交叉表使用此代码

cross = pd.crosstab(df['id_1'],df['id_2'])
adjacency_matrix=cross.values

关于python - 为大 id 数创建邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65384373/

相关文章:

python - 在列表之间移动 Python 元素

python - 如何在 Windows 7 64 位上使用 theano 设置 cuDnn

python - 从字典创建图形工具图形

java - 传单,OSM : secure tile server

android - 我可以在 osmdroid 中使用 Google map 图 block 吗?

python - 在tensorflow的输入中放入什么才能起作用

python - Django:加载转储后 syncdb 不创建新表

python - networkx 中图形的遍历级别顺序

python - 如何在边缘列表中找到所有派系

android - OSM Magsforge(离线) map 中点和路径之间的最短距离