Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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:来自数据帧的网络_Python - Fatal编程技术网

Python:来自数据帧的网络

Python:来自数据帧的网络,python,Python,我有一个数据帧df,它包含由节点I和节点j组成的定向网络的边缘列表信息。每个节点都有自己的值 df node_i node_j value_i value_j 0 3 4 89 33 1 3 2 89 NaN 2 3 5 89 69 3 0 2 45

我有一个数据帧
df
,它包含由节点
I
和节点
j
组成的定向网络的边缘列表信息。每个节点都有自己的

df
    node_i    node_j    value_i   value_j
0    3         4          89         33
1    3         2          89         NaN
2    3         5          89         69
3    0         2          45         NaN
4    0         3          45         89
5    1         2          109        NaN
我想创建一个权重,它是
node_I
和'node_j'之间的分数,而
NaN
应该被相邻节点的平均值替换

我想要一个如下所示的数据帧:

df
    node_i    node_j    value_i   value_j         w
0    3         4          89         33         89/33         ## fraction
1    3         2          89         NaN    89/((69+33)/2)    ## fraction with average
2    3         5          89         69         89/69         ## fraction
3    0         2          45         NaN        45/89         
4    0         3          45         89         45/89
5    1         2          109        NaN        109
我会做一个循环,但对于大型网络来说,这是无效的

nodes = pd.unique(df['Node_i'])
df['w'] = 0
for i in nodes:
   tmp = df[df['Node_i'] == i]
   w_j = np.mean(tmp['Node_j']) ## Compute average
   tmp.ix[tmp.value_j.isnull(), 'value_j'] = w_j ## replace NaN with mean 
   idx = tmp.index()
   tmp['w'][idx] = tmp['value_i'][idx] / tmp['value_j'][idx]  )

我不能用你天真的方法。你能发布想要的输出吗?@user3483203我发布了