数据科学中数据的来源以及读取数据的方法
数据来源
数据来源一般有五种:
- 数据文件:以数字或文本形式存储的结构化的数据记录
- 数据库:按照数据结构组织存储和管理数据的一个库,分为关系型数据库和非关系型数据库
- API:应用程序接口, 分为服务型API和数据型API,我们希望使用的是数据型API——通过特定语法,通过向服务器发送特定请求,返回特定格式的数据(或数据文件),一般返回的格式有JSON XML等
- 流式数据:应用于时效性较强的场景,一般分为用户行为数据流和机器数据流
- 外部公开数据:公开的任意第三方都能获取的数据
python读取数据的方法
我们知道数据科学研究中我们最常用的工具就是python,所以这里讲解一下一些读取数据的方法——下面使用jupyter notebook进行数据读取的小实验
从文本文件中读取运营数据
使用python自带的read,readline, readlines进行读取
- 打开文件的基本语法:
file = open('输入文件所在的路径', [, mode], [, buffering])
例子:file = open('data.txt', [, r+])
后面的模式跟C语言中的读写模式一样,常用的读写模式有:
- r :只读, 文件指针位于文件开头,默认的模式(不设置时默认为r)
- r+ :打开一个文件用于读写
- w :打开一个文件只用于写入, 若该文件存在则覆盖其内容,不存在则创建一个新文件
- w+ :打开一个文件用于读写,存在则覆盖原来内容,不存在则创建新文件
- a :打开一个文件用于追加内容, 存在时,文件指针放于文件结尾,新写入的数据会追加在原有数据的结尾, 不存在则创建文件进行写入
- a+ :打开一个文件用于读写,其他功能与a类似
- 三种python自带的文件读取方法:
- read :读取全部数据,所有行合并为一个字符串
- readline :读取文件中的一行数据, 该行数据为一个字符串
- readlines :读取全部数据, 返回一个列表,每一行都是该列表中的一个对象
- 文件的关闭
我们可以使用with来完成打开和关闭:
with open('data.txt') as fn:
content = fn.read()
读取完毕后会自动关闭文件
理论上,python可以读取任意类型的数据文件, 但这里常常读取格式化的文本数据文件为主, 一般是.txt .csv .tsv为扩展名的文件
使用numpy读取数据
大致有三种方法:
- loadtxt : 从txt文件中读取数据
- load :读取numpy专用的二进制数据文件 .npy文件等
- fromfile :读取简单的文本文件数据以及二进制数据
这里展示了前面两个的用法:
使用pandas读取数据
常用方法:
- read_csv : 读取csv文件
- read_fwf : 读取表格或固定宽度格式的文本行到数据框
- read_table :读取通用分隔符的数据文件到数据框
- read_clipboard :从剪贴板中读取数据
- read_excel
- read_html
- read_json
- read_sql
剩下的读取方法从方法名字就知道他们是读取哪类数据的
读取excel数据
可以看到我们可以使用pandas的read_excel来获取,我们也可以使用另一个专门读取excel的包来读取,比如:xlrd xlwt pyexcel-xls xluntils pyExcel-erator等,这里使用xlrd作为例子
Anaconda中内置了两个模块:xlrd xlwt
import xlrd
xlsx = xlrd.open_workbook('file_name.xlsx')
print(xlsx.sheet_names)
这里展示了一些探索数据的方法
读取非结构化网页、文本、图像、视频、语音
从网页中获取数据
可以使用urllib urllib2 requests等库,具体可以看我爬虫的系列文章:
读取非结构化文本数据
读取图像数据
- 使用pillow来读取图片
2. 使用opencv读取图像