python数据挖掘和分析(二)
2018-02-12 17:37
274 查看
这一章我们讲如何将数据导入到Python中以便我们进行处理。数据导入的方式有很多,经常用的就是从数据库直连得到数据,从csv文件读取数据,从Excel文件读数据,从HTML中读数据,从TXT中读数据。
我们挨个讲解一下:
从csv中导入数据,数据使用mysql5.7的sakila库里的actor表内数据:
结果如下:
在某些时候会报UnicodeDecodeError错误,因为字符集的原因,这个时候根据提示的字符集比如说utf-8字符集进行声明即可,例如:
如果是excel数据要导入到python中,我们这样做:
执行此命令可以看到有一个报错:
为此我们安装xlrd模块,在此不细说了,安装之后再执行报错消失。
结果:
还有一种方式是直连数据库,从数据库取数据,那么怎么做呢?以安装在本地的mysql数据库为例,先安装pymysql模块(pymysql3模块也行,不知道这两个模块有什么区别。但是使用的时候都是import pymysql):
可以看到结果:
我这里pycharm并没有出现编码的问题,有的工具使用这个模块可能会报编码错误,这个时候可以修改pymysql的源文件,找到你安装的pymysql的位置(使用搜索),进入然后找到pymysql下面的connects文件,更改,在其中查找charset=跳到def init(…,charset=”,…)此时默认为空,要添加上utf8,不带 “-” 。c里的数据不能直接取出来,只能一行一行取,查看其中一行返回值使用value方法:
结果显示:
要从HTML文件中导入数据:
不过这个时候会因为我们没有安装基础的lxml、Beautifulsoup4和htmllib模块报错:
安装之后就不会报错了。注意,d不能使用head或tail方法,因为它返回的是一个列表:
导入TXT文件里面的数据步骤如下:
注意!在导入的时候可能出现两个错误,一个是UnicodeDecodeError错误,这个需要查看TXT文件的编码或者更改TXT文件的编码,此处我将其改为utf-8格式的编码错误解决,一个是OSError错误,此错误通过将文件名从中文改为英文或者其他文件名即可解决。
我们挨个讲解一下:
从csv中导入数据,数据使用mysql5.7的sakila库里的actor表内数据:
a = pda.read_csv("C:/Users/yuexiao.liu/Desktop/2.csv") print(a.head())
结果如下:
actor_id first_name last_name last_update 0 1 PENELOPE GUINESS 2006-02-15 04:34:33 1 2 NICK WAHLBERG 2006-02-15 04:34:33 2 3 ED CHASE 2006-02-15 04:34:33 3 4 JENNIFER DAVIS 2006-02-15 04:34:33 4 5 JOHNNY LOLLOBRIGIDA 2006-02-15 04:34:33
在某些时候会报UnicodeDecodeError错误,因为字符集的原因,这个时候根据提示的字符集比如说utf-8字符集进行声明即可,例如:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte #对应处理方法: a = pda.read_csv("C:/Users/yuexiao.liu/Desktop/2.csv",encoding="utf-8")
如果是excel数据要导入到python中,我们这样做:
b = pda.read_excel("C:/Users/yuexiao.liu/Desktop/3.xlsx")
执行此命令可以看到有一个报错:
ImportError: Install xlrd >= 0.9.0 for Excel support
为此我们安装xlrd模块,在此不细说了,安装之后再执行报错消失。
print(type(b))
结果:
<class 'pandas.core.frame.DataFrame'>
还有一种方式是直连数据库,从数据库取数据,那么怎么做呢?以安装在本地的mysql数据库为例,先安装pymysql模块(pymysql3模块也行,不知道这两个模块有什么区别。但是使用的时候都是import pymysql):
import pymysql conn = pymysql.connect(host='127.0.0.1',user='root',passwd='******',db='sakila') sql = "select * from actor" c = pda.read_sql(sql,conn) print(c.head())
可以看到结果:
actor_id first_name last_name last_update 0 1 PENELOPE GUINESS 2006-02-15 04:34:33 1 2 NICK WAHLBERG 2006-02-15 04:34:33 2 3 ED CHASE 2006-02-15 04:34:33 3 4 JENNIFER DAVIS 2006-02-15 04:34:33 4 5 JOHNNY LOLLOBRIGIDA 2006-02-15 04:34:33
我这里pycharm并没有出现编码的问题,有的工具使用这个模块可能会报编码错误,这个时候可以修改pymysql的源文件,找到你安装的pymysql的位置(使用搜索),进入然后找到pymysql下面的connects文件,更改,在其中查找charset=跳到def init(…,charset=”,…)此时默认为空,要添加上utf8,不带 “-” 。c里的数据不能直接取出来,只能一行一行取,查看其中一行返回值使用value方法:
print(c.values[1])
结果显示:
[2 'NICK' 'WAHLBERG' Timestamp('2006-02-15 04:34:33')]
要从HTML文件中导入数据:
d = pda.read_html("C:/Users/yuexiao.liu/Desktop/4.htm")
不过这个时候会因为我们没有安装基础的lxml、Beautifulsoup4和htmllib模块报错:
ImportError: lxml not found, please install it #或者 ImportError: html5lib not found, please install it #或者 ImportError: BeautifulSoup4 (bs4) not found, please install it
安装之后就不会报错了。注意,d不能使用head或tail方法,因为它返回的是一个列表:
print(type(d)) <class 'list'>
导入TXT文件里面的数据步骤如下:
f = pda.read_table("C:/Users/yuexiao.liu/Desktop/1.txt")
注意!在导入的时候可能出现两个错误,一个是UnicodeDecodeError错误,这个需要查看TXT文件的编码或者更改TXT文件的编码,此处我将其改为utf-8格式的编码错误解决,一个是OSError错误,此错误通过将文件名从中文改为英文或者其他文件名即可解决。
相关文章推荐
- python数据分析与挖掘实战 第七章 拓展思考
- Python数据分析与挖掘实战学习笔记(一)
- 【Python数据挖掘课程】四.决策树DTC数据分析及鸢尾数据集分析
- Python数据分析与挖掘实战代码纠错 代码3-1
- 关于 Python 数据抓取 & 分析 & 机器学习 & 挖掘 & 神经网络 内容的分享。
- 【python数据挖掘课程】十三.WordCloud词云配置过程及词频分析
- python数据挖掘和分析(一)
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- 2017小象学院Python数据分析与挖掘
- python数据分析与挖掘项目实战记录
- Python数据分析与挖掘实战(数据预处理)
- python数据挖掘与分析实战 第5章 一处错误
- 商品亲和性分析示例 - Python 数据挖掘
- Python数据挖掘课程 二.Kmeans聚类数据分析及Anaconda介绍
- python数据分析与挖掘学习笔记(4)-垃圾邮件自动识别
- Python和R数据挖掘分析技术高级公开课在上海举行
- Python数据采集处理分析挖掘可视化应用实例
- Python 和 R 数据分析/挖掘工具互查
- python数据挖掘课程 十二.Pandas、Matplotlib结合SQL语句对比图分析
- python数据分析与挖掘学习笔记(3)_小说文本数据挖掘part1