AttributeError:模块“networkx”没有属性“from_pandas_dataframe”
Posted
技术标签:
【中文标题】AttributeError:模块“networkx”没有属性“from_pandas_dataframe”【英文标题】:AttributeError: module 'networkx' has no attribute 'from_pandas_dataframe' 【发布时间】:2018-08-19 18:06:39 【问题描述】:我有networkx v. 2.1
。为了使其与 pandas 数据框一起工作,我尝试了以下操作:
pip3
安装,这不起作用生成Atrribute Error
,如标题,因此被卸载。
用“python3 setup.py install
”重新安装
错误描述。
AttributeError: 模块 'networkx' 没有属性 'from_pandas_dataframe`
重现错误的步骤:
我使用csv
导入数据。我这样做是因为我只想从数据集中读取 5000 行。
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'
我知道我错过了from_pandas_dataframe
,但找不到安装它的方法。
[m for m in nx.__dir__() if 'pandas' in m]
['from_pandas_adjacency',
'to_pandas_adjacency',
'from_pandas_edgelist',
'to_pandas_edgelist']
【问题讨论】:
【参考方案1】:在networkx 2.0 from_pandas_dataframe
has been removed.
您可以改为使用from_pandas_edgelist
。
那么你将拥有:
g_data=G=nx.from_pandas_edgelist(x, 1, 2, edge_attr=True)
【讨论】:
我用的是pip install networkx
但只得到了没有from_pandas_edgelist
的1.11,然后我尝试了pip install --upgrade networkx
,最后得到了from_pandas_edgelist
无向图怎么样?【参考方案2】:
一个简单的图表:
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build a dataframe with 4 connections
df = pd.DataFrame('from': \['A', 'B', 'C', 'A'\], 'to': \['D', 'A', 'E', 'C'\])
# Build your graph
G = nx.from_pandas_edgelist(df, 'from', 'to')
# Plot it
nx.draw(G, with_labels=True)
plt.show()
【讨论】:
【参考方案3】:这个solution 也有帮助:
G = nx.DiGraph()
G.add_weighted_edges_from([tuple(x) for x in x.values])
nx.info(G)
'Name: \nType: DiGraph\nNumber of nodes: 5713\nNumber of edges: 5000\nAverage in degree: 0.8752\nAverage out degree: 0.8752'
【讨论】:
这与答案无关以上是关于AttributeError:模块“networkx”没有属性“from_pandas_dataframe”的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:模块'keras'没有属性'initializers'
AttributeError:模块'asyncio'没有属性'run'
AttributeError:模块'mysql'没有属性'connector'