Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用networkx 2.0之前的版本读取数据帧_Python_Networkx - Fatal编程技术网

Python 如何使用networkx 2.0之前的版本读取数据帧

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

我需要从一个数据帧生成一个带有弧属性的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_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的源代码复制到了我的脚本中。源代码在中提供。再次感谢。