Python 如何使用networkx 2.0之前的版本读取数据帧
我需要从一个数据帧生成一个带有弧属性的networkx图。在networkx 2.0版中,我知道from_pandas_dataframe函数,我按如下所示做了我想做的事情:Python 如何使用networkx 2.0之前的版本读取数据帧,python,networkx,Python,Networkx,我需要从一个数据帧生成一个带有弧属性的networkx图。在networkx 2.0版中,我知道from_pandas_dataframe函数,我按如下所示做了我想做的事情: graph=nx.from_pandas_dataframe(df_t, 'node2', 'node1', ['Transit Time','arctype','node1type','node2type','cpt'],nx.DiGraph()) 但是目前我不得不使用networkx 1.9.,它没有from_pan
graph=nx.from_pandas_dataframe(df_t, 'node2', 'node1', ['Transit Time','arctype','node1type','node2type','cpt'],nx.DiGraph())
但是目前我不得不使用networkx 1.9.,它没有from_pandas_dataframe函数。我想知道我怎么能做到。任何帮助都将不胜感激
另外,我正在一个只有networkx v1.9的框架中部署我的应用程序。我没有时间在框架中升级networkx版本,因此我正在尝试更改自己的代码 使用,您可以找到定义nx的文件。从\u pandas\u dataframe:
In [125]: import networkx as nx
In [126]: nx.from_pandas_dataframe?
...
File: ~/.virtualenvs/muffy/lib/python3.4/site-packages/networkx/convert_matrix.py
检查此文件(或)显示来自数据帧的相当简单,并且仅依赖于一个辅助函数
因此,您可以创建一个文件utils\u networkx.py
,并在其中插入
\u prep\u使用数据帧中的
和
创建。只需确保将utils\u networkx.py
放在PYTHONPATH
环境变量中列出的目录中,以便Python可以将其作为模块导入
然后你可以这样使用它:
import numpy as np
import pandas as pd
import networkx as nx
import utils_networkx as UNX
r = np.random.RandomState(seed=5)
ints = r.randint(1, 10, size=(3,2))
a = ['A', 'B', 'C']
b = ['D', 'A', 'E']
df = pd.DataFrame(ints, columns=['weight', 'cost'])
df[0] = a
df['b'] = b
print(df)
# weight cost 0 b
# 0 4 7 A D
# 1 7 1 B A
# 2 10 9 C E
G = UNX.from_pandas_dataframe(df, 0, 'b', ['weight', 'cost'])
print(G['E']['C']['weight'])
# 10
print(G['E']['C']['cost'])
# 9
以上代码来自。感谢您的回复。在您的带领下,我使用_prep _create _将来自_pandas _dataframe的源代码复制到了我的脚本中。源代码在中提供。再次感谢。