根据Excel准备Gephi的CSV数据

文章目录

  • 根据Excel准备Gephi的CSV数据
    • 前言
    • 原始数据
    • 准备点数据
    • 准备边数据
    • 导入CSV数据
    • 后记
    • 参考文档

根据Excel准备Gephi的CSV数据

前言

需要给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。

导入CSV数据

在Gephi的数据资料中,选择点,选择输入电子表格,导入Nodes.csv,选择编码为中文编码(比如GB18030)来避免中文乱码。

选择图的类型(比如无向图),合并策略为Dont merge,选择Append to existing workspace。

类似地,选择Edges.csv来导入边数据,选择合并策略为Dont merge来解决平行边问题。

后记

除了可以手工地通过Excel将原始数据转换为点数据和边数据外,还可以使用Pandas库通过编程的的方式将表格数据转换成点数据和边数据。

参考文档

  • http://humnviz.blogs.bucknell.edu/files/2015/11/Data-Preparation-for-Gephi.pdf

你可能感兴趣的:(图计算)