数据分析指北 - 基础(基础数据操作之二,读取数据源)
如何读取文件数据(以CSV文件举例)和数据库数据。
Photo by Ksenia Kudelkina on Unsplash
微信公众号:数据分析指北
数据源
文件
数据库
本次作业
数据源
对上节的数据还有印象吗?作业有做吗?让我们从上次的数据继续说起。
示例数据
真实世界中的数据存在于各种地方,文件中,网页中,数据库中,甚至是剪贴板中。
文件
其中,文件分为多种类型,Excel的 XLS 文件,普通的 CSV 文件(逗号分隔文件),JSON文件,HDF5文件等等。以 CSV 文件为例,上面的示例数据可能是这样被记录的:
很简单,就是约定了以“,”分隔列中不同的数据,以自然的行来区分数据中不同的行。除了用逗号做为分隔符之外,还可以用其他的标识符,比如分号“;”,句号“。”或其他什么,只要格式遵从这个列分隔的约定就可以。
人们使用 CSV 文件,主要原因就是他其实是一个文本文件(并附加了一些格式进行约定),在所有的平台下都是可以直接打开阅读的。这一点而不像xls,数据库等存储数据的方式 – 需要安装特定的软件,才能查看数据。
对 CSV 文件观察一下,除了之前说的约定的分隔符之外,有可能你拿到的数据有一些 “意外”,比如没有表头,即没有 “班,姓名,性别,出生年月,身高,数学,英语” 那一行;开始时有几行空行;再或者有一些行比其他行短 - 短的主要原因是,那一行后面有一些列没有数据了,就没有写。
哦,对了,在处理中文数据的时候还有可能有关于文件编码的问题绊住你。
对于这样一个约定好了格式,但却仍然有上面所说的“意外”情况的 CSV 文件,在每个分析软件中,都有一些标准的方法去读取。
比如 Python (Pandas库)中就是函数, 函数的参数就是上面说的几种情况,外加一些处理“意外”的参数。
在 Excel 中,在导入的时候也是有类似的选项,如下图所示:
Excel CSV的导入过程
在 R 这门统计语言中,CSV 文件是按照如下方式读取的。即使还不懂这门语言,看着下面语句,也能猜个八九不离十了。
Matlab 中,来完成这件事。
KNIME 中(之前的附录作业中已经让你安装了哦),配置下 CSV 模块的参数就可以,大同小异:
KNIME CSV 模块配置选项
其余的文件类型,以及网页类型(也归类为文件类型),其实只是格式的约定差异而已,不再赘言。
数据库
数据库种类繁多,不同的数据库有不同的约定连接方式。为简便起见,这里只大概聊两句 KNIME 是怎么连接的。KNIME 底层是由 JAVA 语言写成的,在 JAVA 的世界中,有一个叫做JDBC(Java DataBase Connectivity)的标准,这个标准制定了怎样用 JAVA 去连接数据库,以及怎样在数据库中进行增加,删除,修改,查询(简称为增删改查,CRUD)等一系列操作。各个数据库厂商只需要根据这个标准,制定自己家数据库的相应驱动,就可以在 JAVA 程序中通过 JDBC 接口连接数据库了。下图中的灰色节点,就是各个数据库厂家提供的相应驱动。
JAVA 程序通过 JDBC 接口连接各种数据库
KNIME 中,需要做的就是,把需要的灰色驱动节点下载下来,然后配置一下就好了。具体如何做,请参照
本次作业
我已经给你准备好了 CSV 数据,在 KNIME 的小工程(workflow)中配置好了 CSV 模块,并把把结果导出成了一个文件。
你需要做的就是,把这个 workflow 想办法导入到你的 KNIME 中,然后试着操作得到下面的结果:
导入 CSV 最终效果图
领取专属 10元无门槛券
私享最新 技术干货