AttributeError: module 'networkx' has no attribute 'from_pandas_dataframe'

Krishna Neupane picture Krishna Neupane · Mar 11, 2018 · Viewed 28k times · Source

I have networkx v. 2.1. to make it work w/ pandas dataframe, i tried following:

  • installed via pip3, this did not work generated Atrribute Error as in title, hence uninstalled.
  • re-installed with 'python3 setup.py install"

Error description.

AttributeError: module 'networkx' has no attribute 'from_pandas_dataframe`

Steps to reproduce Error:

I imported data using csv. I did this because I just wanted to read only 5000 rows from the dataset.

x=pd.DataFrame([x for x in rawData[:5000]])

x[:10] 

0   1   2
0   228055  231908  1
1   228056  228899  1
2   228050  230029  1
3   228059  230564  1
4   228059  230548  1
5   70175   70227   1
6   89370   236886  1
7   89371   247658  1
8   89371   249558  1
9   89371   175997  1

g_data=G=nx.from_pandas_dataframe(x)

module 'networkx' has no attribute 'from_pandas_dataframe'

I know I am missing the from_pandas_dataframe but cant find a way to install it.

[m for m in nx.__dir__() if 'pandas' in m] 

['from_pandas_adjacency',
 'to_pandas_adjacency',
 'from_pandas_edgelist',
 'to_pandas_edgelist']

Answer

tohv picture tohv · Mar 30, 2018

In networkx 2.0 from_pandas_dataframe has been removed.

Instead you can use from_pandas_edgelist.

Then you'll have:

g_data=G=nx.from_pandas_edgelist(x, 1, 2, edge_attr=True)