AttributeError:模块'networkx'没有属性'from_pandas_dataframe'

Kri*_*ane 20 networkx pandas

我有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'
Run Code Online (Sandbox Code Playgroud)

我知道我错过了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']
Run Code Online (Sandbox Code Playgroud)

toh*_*ohv 37

在networkx 2.0中from_pandas_dataframe已被删除.(https://networkx.github.io/documentation/stable/release/release_2.0.html)

相反,你可以使用 from_pandas_edgelist

https://networkx.github.io/documentation/stable/reference/generated/networkx.convert_matrix.from_pandas_edgelist.html?highlight=from_pandas_edgelist#networkx.convert_matrix.from_pandas_edgelist

然后你会有:

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

  • 我使用的是`pip install networkx`,但只得到了1.11,它没有`from_pandas_edgelist`,然后我尝试了`pip install --upgrade networkx`,最后得到了`from_pandas_edgelist` (2认同)

Wil*_*idi 6

一个简单的图:

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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Kri*_*ane -5

解决方案也有帮助:

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'
Run Code Online (Sandbox Code Playgroud)