需要给Gephi准备点数据(Nodes)和边数据(Edges),才能使用Gephi来作可视化图分析。
本文讲解了如何在Excel中将原始数据转换成点数据和边数据,然后导入到Gephi中。
一般地,原始数据为表格结构,每一行表示一条数据,除了主列外,还有其它的属性列。
比如一个企业,“企业名称”为主列,属性列还包括:法定代表人、股东1、持股比例1、股东2、持股比例2、执行监事和董事。
在原始数据Excel中新建一个名为“Nodes”的sheet,定义列:Id, Label, Type。
将原始数据的每一列数据复制到Nodes sheet的Label列,注意格式和原数据保持一致。
在Nodes sheet中选中Label列,选择 【数据】 / 【删除重复列】,来删除掉重复的值。
再在Label列中筛选和删除空值。
在Id列,填入1, 2,并使用Excel的自动填充功能来填充Id列,使得Id递增且不重复。
在Type列标注点的类型,比如企业或自然人。
将Nodes sheet另存为Nodes.csv。
在原始数据Excel中新建一个名为”Edges“的sheet,定义列:Source, Target, Label, Weight。
在Nodes sheet的后面复制Id列到一个新列(比如D列)。
在原始数据sheet的后面,复制一遍列名到新列。
在新列中使用VLOOKUP
函数从Nodes sheet关联查找点Id:
第一列”企业名称“的值为:
# 3即为Nodes sheet的复制的Id列索引
=VLOOKUP(A2,Nodes!B:D,3,FALSE)
第二列的值为:
=VLOOKUP(B2,Nodes!B:D,3,FALSE)
以此类推,关联查找出所有新列的值。
将新列的”企业名称“复制到Edges sheet的Source列,然后复制第二列的值到Edges sheet的Target列,复制第二列的列名到Edges sheet的Label列。
以此类推,将全部新列复制到Edges sheet的Target列。
删除不能关联的N/A值。
将Weight全部填充为1。
将Edges sheet保存为Edges.csv。
在Gephi的数据资料中,选择点,选择输入电子表格,导入Nodes.csv,选择编码为中文编码(比如GB18030)来避免中文乱码。
选择图的类型(比如无向图),合并策略为Dont merge,选择Append to existing workspace。
类似地,选择Edges.csv来导入边数据,选择合并策略为Dont merge来解决平行边问题。
除了可以手工地通过Excel将原始数据转换为点数据和边数据外,还可以使用Pandas库通过编程的的方式将表格数据转换成点数据和边数据。