Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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 如何从dataframe创建网络图?_Python_Pandas_Networkx - Fatal编程技术网

Python 如何从dataframe创建网络图?

Python 如何从dataframe创建网络图?,python,pandas,networkx,Python,Pandas,Networkx,我偶然发现这幅代表代表代表投票模式的图像: 据我所知,具有类似投票模式的代表将更靠近图表 假设我有带有名称、投票和投票id列的表格数据,I)如何从中创建边和节点,ii)如何从这些边和节点创建图形 我想在转换数据后,我需要使用networkx模块,但我不确定如何首先创建连接 如果这是显而易见的,我很抱歉,我只是最近才发现网络分析 一些示例数据(如果有帮助): name vote vote_id 0 A yes 1 1 A

我偶然发现这幅代表代表代表投票模式的图像:

据我所知,具有类似投票模式的代表将更靠近图表

假设我有带有
名称
投票
投票id
列的表格数据,I)如何从中创建边和节点,ii)如何从这些边和节点创建图形

我想在转换数据后,我需要使用
networkx
模块,但我不确定如何首先创建连接

如果这是显而易见的,我很抱歉,我只是最近才发现网络分析


一些示例数据(如果有帮助):

  name        vote  vote_id
0    A         yes        1
1    A         yes        2
2    B          no        1
3    B  not voting        2
4    C  not voting        1
5    C          no        2
6    D         yes        1
7    D          no        2

您的节点将对应于
名称
属性。然而,对于边缘的w.r.t,你必须做出选择。据推测,边权重是投票模式中相似性的某种度量,但有许多相似性度量可供选择。在你的例子中,余弦相似性可能是最自然的选择。在
scipy.spatial.pdist
scikit learn
中有一些您可以使用的实现。要计算给定
名称的投票模式,您需要创建一个长度唯一的
vote\u id
向量,并用此人的投票填充它(例如:是:1,未投票:0,否:-1,无:NaN)。然后,您将计算两个这样的投票模式之间的余弦相似性,然后将其用作两个对应名称之间的边的边权重。请注意,您需要正确处理NAN;可以找到一个讨论。@PaulBrodersen,非常感谢。我会调查的!