相关疑难解决方法(0)

networkx - 以块的形式读取边缘列表(pandas)

我有一个非常大的网络需要在 Networkx 中读取和分析(大约 5 亿行),存储在 gzip 加权边缘列表(Node1 Node2 权重)中。到目前为止,我尝试用以下方式阅读它:

# Open and Read File
with gzip.open(network,'rb') as fh:
    # Read Weighted Edge List
    G = nx.read_weighted_edgelist(fh, create_using=nx.DiGraph())
Run Code Online (Sandbox Code Playgroud)

但由于它很大,我有一些内存问题。我想知道是否有一种方法可以沿着固定长度的块以“pandas”样式读取文件。感谢您的帮助。

编辑:

这是我的边缘列表文件的一小部分提取(Node1 Node2 Weight):

30879005 5242 11
44608582 2295986 4
24935102 737450 1
42230925 1801294 1
20926179 2332390 1
40959246 1100438 1
3291058 3226104 1
23192021 5818064 1
16328715 7695005 1
11561383 2102983 1
1886716 1378893 2
23192021 5818065 1
2060097 2060091 1
7176482 3222203 2
46586813 1599030 1
35151866 35151866 1 …
Run Code Online (Sandbox Code Playgroud)

python networkx pandas

2
推荐指数
1
解决办法
3867
查看次数

Networkx 可以从不同的文件中读取节点和边吗?

我有一个包含这些节点的 csv 文件,每个节点都有相关的坐标,如下所示:

    node x y
    A1  67.8    15.53
    A2  108.74  15.53
    B1  67.8    25.33
    B2  108.74  25.33
    C1  67.8    30.22
    C2  108.74  30.22
    D1  67.8    37.99
    D2  108.74  37.99
    E1  67.8    43.84
Run Code Online (Sandbox Code Playgroud)

对于每个节点,我有另一个带边的文件,它表示每个连接节点之间的距离,如下所示:

   node1 node2 distance
   A1 A2 40.90
   A1 B1 9.8
   A2 B2 9.8
   B1 A1 9.8
   ...
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么做才能将节点及其对应的边添加到同一个图中?

我试过这个,但它不起作用:

    import pandas as pd 
    import networkx as nx 
    import matplotlib.pyplot as plt
    import numpy

    nodes = pd.read_csv('nodes.csv')
    print nodes

    G = nx.Graph()

    for row in nodes.iterrows():
      G.add_node(row[1][0], x=row[1][2],y=row[1][3]) …
Run Code Online (Sandbox Code Playgroud)

python graph edges nodes networkx

1
推荐指数
1
解决办法
3129
查看次数

标签 统计

networkx ×2

python ×2

edges ×1

graph ×1

nodes ×1

pandas ×1