如何使用 GraphFrame 从边缘列表创建图形
how to create graph from edge list using GraphFrame
我有一个包含两列边列表的数据框,我想使用 pyspark 或 python 从中创建图表
任何人都可以建议如何去做。
在 R 中,可以使用 igraph
中的以下命令完成
graph.edgelist(as.matrix(df))
我的输入数据框是 df
valx valy
1: 600060 09283744
2: 600131 96733110
3: 600194 01700001
我的输出应该如下所示(基本上都是 V1 下的 valx 和 valy 以及 V2 下的成员信息)
V1 V2
600060 1
96733110 1
01700001 2
根据您想要的输出,您似乎不需要图表,而是需要一个数组来显示您的 V1 值最初存储在哪一行。您可以从原始数据框中获取。
我假设您想要的是将数据框转换为图形格式,而不是上述格式。
import networkx as nx
import pandas as pd
filelocation = r'C:\Users\Documents\Tilo Edgelist'
Panda_edgelist = pd.read_csv(filelocation)
g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')
nx.draw(g,with_labels = True,node_size = 0)
上面的代码将在 python 中为您创建一个图表,下面是您使用 networkx 的 draw 函数绘制图表时的输出结果。
我已经假设您正在通过读取某种文件来创建数据框。
如果您可以将此文件转换为 csv 文件,则可以使用 pandas 将其读入数据帧。
我使用的csv文件格式如下:
valx,valy
600060,09283744
600131,96733110
600194,01700001
用引号中的文件路径代替您的 csv 文件的文件路径。
您可以在下面看到来自 pd.read_csv
的数据帧的样子
valx valy
0 600060 9283744
1 600131 96733110
2 600194 1700001
然后我们将此数据帧传递给 networkx 以创建图形
g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')
在上面的函数中,您可以看到我已经为它提供了参数 Panda_edgelist
,然后 'valx'
和 'valy'
分别作为源节点列名和目标节点列名。它使用这些参数创建一个名为 g.
的图
最后,我绘制了使用 nx.draw
生成的图表。
nx.draw(g,with_labels = True,node_size = 0)
此函数需要您将图形传递给它,在我们的示例中为 g。
with_labels = True
用于绘制节点names/ID。
node_size = 0
用于使绘制的节点大小为0。默认情况下,如果你不给函数这个参数,那么它会绘制小红圈来代表图中的节点。
我有一个包含两列边列表的数据框,我想使用 pyspark 或 python 从中创建图表 任何人都可以建议如何去做。 在 R 中,可以使用 igraph
中的以下命令完成graph.edgelist(as.matrix(df))
我的输入数据框是 df
valx valy
1: 600060 09283744
2: 600131 96733110
3: 600194 01700001
我的输出应该如下所示(基本上都是 V1 下的 valx 和 valy 以及 V2 下的成员信息)
V1 V2
600060 1
96733110 1
01700001 2
根据您想要的输出,您似乎不需要图表,而是需要一个数组来显示您的 V1 值最初存储在哪一行。您可以从原始数据框中获取。
我假设您想要的是将数据框转换为图形格式,而不是上述格式。
import networkx as nx
import pandas as pd
filelocation = r'C:\Users\Documents\Tilo Edgelist'
Panda_edgelist = pd.read_csv(filelocation)
g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')
nx.draw(g,with_labels = True,node_size = 0)
上面的代码将在 python 中为您创建一个图表,下面是您使用 networkx 的 draw 函数绘制图表时的输出结果。
我已经假设您正在通过读取某种文件来创建数据框。
如果您可以将此文件转换为 csv 文件,则可以使用 pandas 将其读入数据帧。
我使用的csv文件格式如下:
valx,valy
600060,09283744
600131,96733110
600194,01700001
用引号中的文件路径代替您的 csv 文件的文件路径。
您可以在下面看到来自 pd.read_csv
的数据帧的样子
valx valy
0 600060 9283744
1 600131 96733110
2 600194 1700001
然后我们将此数据帧传递给 networkx 以创建图形
g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')
在上面的函数中,您可以看到我已经为它提供了参数 Panda_edgelist
,然后 'valx'
和 'valy'
分别作为源节点列名和目标节点列名。它使用这些参数创建一个名为 g.
最后,我绘制了使用 nx.draw
生成的图表。
nx.draw(g,with_labels = True,node_size = 0)
此函数需要您将图形传递给它,在我们的示例中为 g。
with_labels = True
用于绘制节点names/ID。
node_size = 0
用于使绘制的节点大小为0。默认情况下,如果你不给函数这个参数,那么它会绘制小红圈来代表图中的节点。