【问题标题】:Networkx TypeError: Input graph is not a networkx graph typeNetworkx TypeError:输入图不是networkx图类型
【发布时间】:2019-06-04 17:13:23
【问题描述】:

我正在尝试使用from_pandas_edgelist 创建一个有向图。传递参数create_using=nx.DiGraph()时出错

1) 我尝试创建一个有向图对象,然后尝试使用 from_pandas_edgelist 创建一个图:但它会将所有链接创建为双向

G=nx.DiGraph()    G=nx.from_pandas_edgelist(df_SearchRelations,source='ParentCompanyId',target='ChildCompanyId',edge_attr=True)

2) 我尝试创建一个图形对象,然后使用to_directed() 进行转换,但没有成功

G=nx.from_pandas_edgelist(df_SearchRelations,source='From',target='To',edge_attr=True)
G=G.to_directed()

预期结果: 克服TypeError: Input graph is not a networkx graph type的错误

PS:以前可以工作的相同代码,但突然失败。我不确定这是版本兼容性问题还是数据框问题。

【问题讨论】:

    标签: python networkx


    【解决方案1】:

    尝试使用create_using参数:

    G = nx.from_pandas_edgelist(df_SearchRelations,
                                source='ParentCompanyId',
                                target='ChildCompanyId',
                                edge_attr=True, 
                                create_using=nx.DiGraph())
    

    【讨论】:

      【解决方案2】:

      我发现当图中的每个节点都没有连接时,有向图生成器会出错。所以当我们将 edge_list 作为 pandas 数据框传递时,我们应该检查是否有任何断开的子图/节点。

      【讨论】:

        猜你喜欢
        • 2016-05-02
        • 1970-01-01
        • 2018-06-23
        • 2019-04-01
        • 2020-02-19
        • 2021-05-14
        • 2017-07-08
        • 2021-12-01
        • 2016-06-16
        相关资源
        最近更新 更多