从csv的Python图形

时间:2016-02-22 20:00:03

标签: python python-2.7 csv graphing

我提取了6个月的电子邮件元数据并将其保存为csv文件。 csv现在只包含两列(来自和来自电子邮件地址)。我想构建一个图形,其中顶点是我与之通信的人以及与我通信的那些顶点,边缘是通过通信链接创建的,通过链接标记我有多少通信。解决这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

一种方法是使用关联数据原则(如果您的时间不够并且没有关联数据的背景,则不建议使用)。这是一种可能的方法:

  1. 将每个实体描述为URI
  2. 使用现有本体(例如foaf)来描述数据
  3. 将数据转换为资源描述框架(RDF)
  4. 使用RDF可视化工具。
  5. 由于RDF本质上是一个图表,您将能够可视化您的数据并扩展它。

    如果您不熟悉关联数据,查看加密的方法是使用Pajekhttp://vlado.fmf.uni-lj.si/pub/networks/pajek/)。这种方法更简单,但缺乏语义互操作性的好处,只要您首先关心它们。

答案 1 :(得分:0)

Cytoscape可能能够以该格式导入您的数据并从中构建网络。

http://www.cytoscape.org/

答案 2 :(得分:0)

你的问题(虽然提到Python)没有说明你想用Python做什么部分或多少。我将假设Python是您知道的工具,但主要目标是使数据可视化。在那种情况下:

1)使用Gephi network analysis tool - 有些工具可以按原样使用您的CSV文件,而Gephi就是其中之一。在你的情况下,需要保留边缘权重(=用2个电子邮件地址交换的电子邮件数量),这可以使用"mixed" variation of Gephi's CSV format来完成。

2)另一种选择是预处理您的CSV文件(例如使用Python),计算边缘权重(每2个电子邮件地址之间的电子邮件数量)并以您喜欢的任何格式保存。结果可以在网络分析工具(如Gephi)中直观显示,也可以直接在Python中显示(例如使用https://graph-tool.skewed.de)。

以下是email network analysis project的示例(尽管他们的图表没有显示权重)。