《数据驱动安全:数据安全分析、可视化和仪表盘》一3.3 读入数据

    xiaoxiao2023-06-24  140

    本节书摘来华章计算机《数据驱动安全:数据安全分析、可视化和仪表盘》一书中的第3章 ,第3.1节,[美]杰·雅克布(Jay Jacobs)鲍布·鲁迪斯(Bob Rudis) 著 薛杰 王占一 张卓 胡开勇 蒋梦飏 赵爽 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    3.3 读入数据

    R语言和Python(特别是pandas)在读取和解析数据结构进行处理时能够处理复杂的数据。R的read.table()、read.csv()、read.delim()函数以及pandas的read_csv()函数几乎覆盖了所有的分隔文件读取的需求,并且为各类劣质的输入文件提供了强大的配置选项。在后续章节将会看到,两种工具都提供了从SQL和NoSQL数据库中提取数据、初始化HDFS大数据和处理非结构数据的良好方法。

    合理的分隔是革命性技术Base R和Python的pandas能阅读包含分隔符的文件,虽然它们不知道分隔符会在什么时候出现,以及分隔符具体是什么,但是,数据科学社区的共识是分隔符应该是逗号分隔值(CSV)或者制表符(tab)分隔值(TSV),绝大多数样本数据集都可以使用其中一种分隔符。CSV格式的完整定义在RFC 4180(http://www.rfc-editor.org/rfc/rfc4180.txt)中,具有以下高级属性:每行应只有一个记录。数据文件可以包含一个可选的标题行。报头和数据行有用逗号(或制表符)分隔的字段。每行应该有相同的字段数。字段中的空格被视为显著标识。虽然RFC 4180明确规定逗号是一种分隔符,制表符也可以作为分隔符(没有相关的RFC专门说明制表符分隔值)。安全领域的很多工具都能够导入和导出CSV格式文件。如果打算在类似Hadoop的环境中完成任何工作,你需要熟悉CSV/TSV。另一种构建格式是JSON(JavaScript Object Notation),该格式广泛应用在服务器和浏览器之间传输数据。正如你将在第8章看到的,JSON格式也是很多NoSQL数据库环境/工具的基础数据格式。JSON格式定义在http://www.rfc-editor.org/rfc/rfc4627.txt,有两个主要结构:成对的名称/数值集合(一个“字典”)。一个有顺序的数值列表(一个“数组”)。相较于CSV和TSV格式,JSON格式保证了更丰富、更复杂的数据表示,而且,JSON正在迅速取代另一种流行的、结构化的数据格式—可扩展标记语言(the Extensible Markup Language,XML)。这是因为JSON更简洁的语法,更易于解析,以及(通常)更强的可读性。虽然XML已经并将继续作为文档表示格式,但你现在应该考虑使用JSON作为你的结构化数据处理格式。

    从下载文件的粗略检查中你能看到AlienVault数据有一个相当简单的记录格式,该格式包含使用#作为分隔符的八个字段:

    注意,信誉数据文件缺少可选报头,所以上述示例代码手动指定了更有意义的列名称。这是一个可选的步骤,但是它可以在扩展分析时避免混淆,同时,你在后续章节会看到,它可以在你添加额外数据集时建立整个数据帧的一致性。记录格式的一致性使每种语言的数据有相同的消耗。在每种语言/环境中,我们遵循下面的模式:读取数据。分配有意义的列名(如果需要的话)。使用内置函数来获取数据的结构概述。阅读前几行数据,通常使用head()函数。我们会在第4章介绍更多细节。后续的代码(程序清单3-4和程序清单3-5)是基于前一节的代码,不能保证它们在其他地方正常工作。我们将在本书中延续这种模式,所以你应该按顺序装载和运行每一章的代码。程序清单3-4

    程序清单3-5

    程序清单3-6

    在Canopy内,IPython有一系列函数将数据输出到一个HTML视图格式(见程序清单3-6),该格式可以使程序清单3-5中的head()输出更易阅读(见图3-1)。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)