NetworkX From_Pandas_dataframe

时间:2015-05-04 23:42:58

标签: python pandas networkx

我在NetworkX上遇到错误,说'模块'没有属性'from_pandas_dataframe。'

我有一个名为nflroster的数据框格式为:

Index   . . . Player           Team       Year

0       . . . Player1          Team1      2014

1       .  . .Player2          Team1      2014


2       . . . Player3          Team2      2014
.
.       . . .   .                .         .

因此,根据此处的文档networkx documentation,以下行应该有效

G = nx.from_pandas_dataframe(nflroster,str, 'Team')

但是当我在Ipy笔记本中运行时遇到错误,'module'对象没有属性'from_pandas_dataframe'。

我导入以下内容

import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
from pandas import DataFrame as df

4 个答案:

答案 0 :(得分:3)

我在这里遇到了同样的问题。这就是我解决它的方法:

尝试从源代码安装networkx,而不是通过pip安装。

逐步安装资源

    Download the source (tar.gz or zip file) from https://pypi.python.org/pypi/networkx/ or get the latest development version from https://github.com/networkx/networkx/
    Unpack and change directory to the source directory (it should have the files README.txt and setup.py).
    Run python setup.py install to build and install

请注意,此特定功能 From_Pandas_dataframe 将安装在networkx文件夹的convert_matrix.py文件中。

答案 1 :(得分:2)

您可能安装了不正确的networkx版本。您可能应该检查是否有1.10.0< = see history here

答案 2 :(得分:2)

如果我们查看networkx的build文件夹,在 __ init __。py 中,我们会看到来自networkx.convert_matrix的导入。通过 convert_matrix.py 文件,我们可以看到以下允许的外部依赖项:

__all__ = ['from_numpy_matrix', 'to_numpy_matrix',
           'from_pandas_adjacency', 'to_pandas_adjacency',
           'from_pandas_edgelist', 'to_pandas_edgelist',
           'to_numpy_recarray',
           'from_scipy_sparse_matrix', 'to_scipy_sparse_matrix',
           'from_numpy_array', 'to_numpy_array']

如您所见,from_pandas_dataframe不存在。虽然这可能在1.10 version

所以最后,请始终密切关注版本号。

答案 3 :(得分:0)

另一种在Networkx API中搜索方法的方法:

In [199]: [m for m in nx.__dir__() if 'pandas' in m]
Out[199]:
['from_pandas_adjacency',
 'to_pandas_adjacency',
 'from_pandas_edgelist',
 'to_pandas_edgelist']