我在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
答案 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']