Reputation: 2328
I'm learning networkx library and use twitter retweet directed graph data. I first read the datasets into pandas df (columns are 'from','to','weight') and wanted to put a first 300 rows(retweet) into a graph using below code:
tw_small = nx.from_pandas_dataframe(edges_df[:300],source='from',
target='to',edge_attr=True)
I thought that it correctly created a graph but when I run tw_small.is_directed()
, it says False
(undirected graph) and I drew a graph using nx.draw()
but it doesn't show the direction either.
Could someone help me find a correct way to make a directed graph?
Thanks.
Upvotes: 23
Views: 22457
Reputation: 141
Instead of a dataframe you can write edgelist, it works for me, it shows me an error when I used 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())
You can test if your graph is directed or not using: nx.is_directed(Graph)
. You will get True.
Upvotes: 12
Reputation: 25319
Add the optional keyword argument create_using=nx.DiGraph(),
tw_small = nx.from_pandas_dataframe(edges_df[:300],source='from',
target='to',edge_attr=True,
create_using=nx.DiGraph())
Upvotes: 46