Python 3.x Networkx获得多个深度

Python 3.x Networkx获得多个深度,python-3.x,networkx,Python 3.x,Networkx,我有一个csv文件,其中包括多个定向丙烯酸图形。我正在尝试使用networkx获取每个图形的深度。但我不知道是否是我把所有的图形作为一个导入的问题。如何导入多个DAG并计算每个连接图形的最长路径 我的csv文件有两列:源节点和目标节点。 格式是这样的,; 源目标 1源目标 source target 1 2 1 3 1 4 4 5 8 9 9 10 这有两个

我有一个csv文件,其中包括多个定向丙烯酸图形。我正在尝试使用networkx获取每个图形的深度。但我不知道是否是我把所有的图形作为一个导入的问题。如何导入多个DAG并计算每个连接图形的最长路径

我的csv文件有两列:源节点和目标节点。 格式是这样的,; 源目标 1
源目标

source     target
 1           2
 1           3
 1           4
 4           5
 8           9
 9          10
这有两个DAG:一个是1到2、1到3、1到4和4到5。第二张图是8到9到10。我想计算每个图的最长深度和最长宽度

我的代码只能生成一个在所有图形中深度最长的结果。但我想让它显示所有具有最长深度的独立图形

我的代码如下:

import networkx as nx
import pandas as pd

df = pd.read_csv("importfile.csv")
g= nx.from_pandas_edgelist(df, source='source', target = ‘target’, creat_using = nx.DiGraph())
longes_depth = nx.algorithms.dag.dag_longest_path_length(g)
print(longest_depth)

您可以首先在
g
中计算连接的组件,然后迭代组件,在其组成节点上生成子图,并计算每个子图的路径长度

longest_depths = []
for component in nx.connected_components(g):
    subgraph = nx.subgraph(g, component)
    longest_depths.append(nx.algorithms.dag.dag_longest_path_length(subgraph))

谢谢你,保罗,我认为这个想法对我来说是有意义的,但我试过了,它给了我一个错误。问题是,算法connected_components()只能应用于无向图,而我的是有向图,这表明“没有针对有向类型实现”。我还在努力。谢谢在定义组件时,您可能不关心方向性。因此,您可以简单地调用
nx.connected_组件(g.to_undirected())
而不是我上面的答案中的
nx.connected_组件(g)
。谢谢您,保罗!我真的很感激!乐意效劳,随时效劳。