无法使用来自networkx的from_pandas_dataframe创建有向图

时间:2017-06-18 03:19:50

标签: python graph networkx network-analysis

我正在学习networkx库并使用twitter转发有向图数据。 我首先将数据集读入pandas df(列是'来自','到',' weight')并想要将前300行(转推)放入使用以下代码的图表:

tw_small = nx.from_pandas_dataframe(edges_df[:300],source='from',
                                   target='to',edge_attr=True)

我认为它正确地创建了一个图表但是当我运行tw_small.is_directed()时,它显示False(无向图)并且我使用nx.draw()绘制了一个图表,但它并没有显示方向。

有人可以帮我找到制作有向图的正确方法吗?

感谢。

2 个答案:

答案 0 :(得分:11)

添加可选关键字参数create_using = nx.DiGraph(),

tw_small = nx.from_pandas_dataframe(edges_df[:300],source='from',
                                   target='to',edge_attr=True,
                                   create_using=nx.DiGraph())

答案 1 :(得分:0)

您可以编写边列表来代替数据帧,它对我有用,当我使用from_pandas_dataframe : "AttributeError: module 'networkx' has no attribute 'from_pandas_dataframe

时,它向我显示错误

解决方案:

Graph = nx.from_pandas_edgelist(df,source='source',target='destination', edge_attr=None, create_using=nx.DiGraph())

您可以使用nx.is_directed(Graph)测试图形是否有向。您将获得True。