利用Python读取外部数据文件
不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素。利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析、数据可视化、数据挖掘等。 在本期的Python学习中,我们将针对Python如何获取外部数据做一个详细的介绍,从中我们将会学习以下4个方面的数据获取: 1、读取文本文件的数据,如txt文件和csv文件 2、读取电子表格文件,如Excel文件 3、读取统计软件生成的数据文件,如SAS数据集、SPSS数据集等 4、读取数据库数据,如MySQL数据、SQL Server数据 一、读取文本文件的数据 大家都知道,Python中pandas模块是专门用来数据分析的一个强大工具,在《Python数据分析之pandas学习(一)》和《Python数据分析之pandas学习(二)》中我们详细介绍了有关pandas模块的应用,下面我们就来介绍pandas是如何读取外部数据的。 1、读取txt数据 In [1]: import pandas as pd In [2]: mydata_txt = pd.read_csv('C:\\test_code.txt',sep = '\t',encoding = 'utf-8')
1)当原始文件txt或csv的数据不是uft8格式时,需要另存为utf8格式编码; 2)如果原始的数据文件就是uft8格式,为了正常读入,需要将read_csv函数的参数encoding设置为utf-8 将原始数据另存为utf8格式的数据,重新读入txt数据 In [3]: mydata_txt = pd.read_csv('C:\\test.txt',sep = '\t',encoding = 'utf-8') In [4]: mydata_txt 很顺利,txt文本文件数据就这样进入了Python的口袋里了。 2、读取csv数据 csv文本文件是非常常用的一种数据存储格式,而且其存储量要比Excel电子表格大很多,下面我们就来看看如何利用Python读取csv格式的数据文件: In [5]: mydata_csv = pd.read_csv('C:\\test.csv',sep = ',',encoding = 'utf-8') In [6]: mydata_csv 如果你善于总结的话,你会发现,txt文件和csv文件均可以通过pandas模块中的read_csv函数进行读取。该函数有20多个参数,类似于R中的read.table函数,如果需要查看具体的参数详情,可以查看帮助文档:help(pandas.read_csv)。 二、读取电子表格文件 这里所说的电子表格就是Excel表格,可以是xls的电子表格,也可以是xlsx的电子表格。在日常工作中,很多数据都是存放在Excel电子表格中的,如果我们需要使用Python对其进行分析或处理的话,第一步就是如何读取Excel数据。下面我们来看看如果读取Excel数据集: In [7]: mydata_excel = pd.read_excel('C:\\test.xlsx',sep = '\t',encoding = 'utf-8') In [8]: mydata_excel
三、读取统计软件生成的数据文件 往往在集成数据源的时候,可能会让你遇到一种苦恼,那就是你的电脑里存放了很多统计软件自带的或生成的数据集,诸如R语言数据集、SAS数据集、SPSS数据集等。那么问题来了,如果你电脑里都装了这些软件的话,这些数据集你自然可以看见,并可以方便的转换为文本文件或电子表格文件,如果你的电脑里没有安装SAS或SPSS这样大型的统计分析软件的话,那么你该如何查看这些数据集呢?请放心,Python很万能,它可以读取很多种统计软件的数据集,下面我们介绍几种Python读取统计数据集的方法: 1、读取SAS数据集 SAS数据集的读取可以使用pandas模块中的read_sas函数,我们不妨试试该函数读取SAS数据集。下图是使用SAS打开的数据集,如果你的电脑中没有安装SAS,那你也可以通过Python实现数据的读取。 In [1]: import pandas as pd In [2]: mydata_sas = pd.read_sas('G:\\class.sas7bdat',encoding='utf8') 2、读取SPSS数据集 读取SPSS数据就稍微复杂一点,自己测试了好多次,查了好多资料,功夫不负有心人啊,最终还是搞定了。关于读取SPSS数据文件,需要为您的Python安装savReaderWriter模块,该模块可以到如下链接进行下载并安装:https://pypi.python.org/pypi/savReaderWriter/3.4.2。 安装savReaderWriter模块 可以通过该命令进行savReaderWriter模块的安装:python setup.py install 下图是SPSS数据在SPSS中打开的样子: In [1]: import savReaderWriter In [2]: mydata_spss = savReaderWriter.SavReader('employee_data.sav') In [3]: mydata_spss 3、实在没办法该怎么办? 四、读取数据库数据 企业中更多的数据还是存放在诸如MySQL、SQL Server、DB2等数据库中,为了能够使Python连接到数据库中,科学家专门设计了Python DB API的接口。我们仍然通过例子来说明Python是如何实现数据库的连接与操作的。 1、Python连接MySQL MySQLdb模块是一个连接Python与MySQL的中间桥梁,但目前只能在Python2.x中运行,但不意味着Python3就无法连接MySQL数据库。这里向大家介绍一个非常灵活而强大的模块,那就是pymysql模块。我比较喜欢他的原因是,该模块可以伪装成MySQLdb模块,具体看下面的例子: In [1]: import pymysql In [2]: pymysql.install_as_MySQLdb() #伪装为MySQLdb模块 In [3]: import MySQLdb 使用Connection函数联通Python与MySQL In [4]: conn = MySQLdb.Connection( ...: host = 'localhost', ...: user = 'root', ...: password = 'snake', ...: port = 3306, ...: database = 'test', ...: charset='gbk') 使用conn的游标方法(cursor),目的是为接下来的数据库操作做铺垫。 In [5]: cursor = conn.cursor() In [6]: sql = 'select * from memberinfo' 执行SQL语句 In [7]: cursor.execute(sql) Out[7]: 4 In [8]: data = cursor.fetchall() In [9]: data 我们发现data中存储的是元组格式的数据集,我们在《Python数据分析之pandas学习(一)》中讲到,构造DataFrame数据结构只能通过数组、数据框、字典、列表等方式构建,但这里是元组格式的数据,该如何处理呢?很简单,只需使用list函数就可以快速的将元组数据转换为列表格式的数据。 In [10]: data = list(data) In [11]: data 下面我们就是要pandas模块中的DataFrame函数将上面的data列表转换为Python的数据框格式: In [14]: import pandas as pd In [15]: mydata = pd.DataFrame(data, columns = ['id','name','age','gender']) In [16]: mydata 最后千万千万注意的是,当你的数据读取完之后一定要记得关闭游标和连接,因为不关闭会导致电脑资源的浪费。 In [19]: cursor.close() In [20]: conn.close() 2、Python连接SQL Server 使用Python连接SQL Server数据库,我们这里推荐使用pymssql模块,该模块的语法与上面讲的pymysql是一致的,这里就不一一讲解每一步的含义了,直接上代码: In [21]: import pymssql In [22]: connect = pymssql.connect( ...: host = '172.18.1.6\SqlR2', ...: user = 'sa', ...: password = '1q2w3e4r!!', ...: database='Heinz_Ana', ...: charset='utf8') In [23]: cursor = connect.cursor() In [24]: sql = 'select * from HeinzDB2_10' In [25]: cursor.execute(sql) In [26]: data = cursor.fetchall() In [27]: data[0] Out[27]: (67782, '2013-05-01', '二阶段', 1.0, 279.0) In [28]: mydata = pd.DataFrame(list(data),columns = ['ConsumerID', ...: 'Purdate', ...: 'Phase', ...: 'ChangeTinRatio', ...: 'TOTALAMT']) In [29]: mydata.head() 本期的内容就是向大家介绍如何使用Python实现外部数据的读取,只有完成了这个基本的第一步,才会顺利的进行下面的清洗、处理、分析甚至挖掘部分。这一期的内容出来的有点晚,主要还是工作比较繁忙,后期继续再接再励,谢谢大家一直以来的支持和互动。在下一期中,我们将介绍R语言中caret包如何实现特征选择。 |
利用Python读取外部数据文件的更多相关文章
- python——读取MATLAB数据文件 *.mat
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...
- 利用Python读取json数据并求数据平均值
要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示.读取这些数据,并求取各个(100多个)城市年.季度平均值. { "time_point&quo ...
- pandas玩转excel-> (2)如何利用pandas读取excel数据文件
import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peoplepeople=pd.read_excel('D:/python结果/task2/Peo ...
- Python数据分析之Pandas读写外部数据文件
1 引言 数据分析.数据挖掘.可视化是Python的众多强项之一,但无论是这几项中的哪一项都必须以数据作为基础,数据通常都存储在外部文件中,例如txt.csv.excel.数据库.本篇中,我们来捋一捋 ...
- Python读取和处理文件后缀为".sqlite"的数据文件
最近在弄一个项目分析的时候,看到有一个后缀为”.sqlite”的数据文件,由于以前没怎么接触过,就想着怎么用python来打开并进行数据分析与处理,于是稍微研究了一下. SQLite是一款非常流行的关 ...
- series和读取外部数据
1.为什么学习pandas 我们并不是不愿意学习新的知识,只是在学习之前我们更想知道学习他们能够帮助我们解决什么问题.--伟哥 numpy虽然能够帮助我们处理数值,但是pandas除了处理数值之外(基 ...
- Windows下Python读取GRIB数据
之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...
- Python读取JSON数据,并解决字符集不匹配问题
今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子. – 思路如下 从一个返回JSON天气数据的网站获取到目标JSON数据串 使用Python解析出需要的部分 写入到本地文件,供其 ...
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
随机推荐
- 8 -- 深入使用Spring -- 2...6 Spring 4.0 增强的自动装配和精确装配
8.2.6 Spring 4.0 增强的自动装配和精确装配 Spring提供了@Autowired 注解来指定自动装配,@Autowired可以修饰setter方法.普通方法.实例变量和构造器等.当使 ...
- python virtualenv安装说明
环境说明: virtualenv安装: 第一步,创建目录code: 第二步,创建一个独立的Python运行环境,命名为venv: 新建的Python环境被放到当前目录下的venv目录. 第三步,有了v ...
- apt-get/dpkg常用指令备查
apt-get install <package> Downloads <package> and all of its dependencies, and installs ...
- Kali linux 试用:dnsenum
dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典件猜测可能存在的域名,以及对一个网段进行反向查询.它可以查询网站的主机地址信息.域名服务器.mx record(函件交换记录),在域 ...
- N76E003之IAP
修改FLASH数据通常需要很长时间,不像RAM那样可以实时操作.而且擦除.编程或读取FLASH数据需要遵循相当复杂的时序步骤.N76E003提供方便FALSH编程方式,可以帮助用户通过IAP方式,重新 ...
- smarty模板文件书写javascript代码
在smarty文件里直接写javascript代码时候,造成500错误. javascript代码有很多的{}在同一行,而{}也是smarty引擎解析模板的关键标识符,smarty将对其进行分析,这时 ...
- 【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context
主要参考微软官方文档 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db Microsoft .NE ...
- java基础---->java多线程的使用(十)
这里介绍一下java中关于线程状态的知识,主要通过代码演示各种状态出现的时机.少年时我们追求激情,成熟后却迷恋平庸,在我们寻找,伤害,背离之后,还能一如既往的相信爱情,这是一种勇气.每个人都有属于自己 ...
- c++ 类前置声明【转】
[转自 here] 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration).下面的程序中,带注释的那行就是类B的前置说明.这是必须的,因为类A中用到了类B,而类B的声明 ...
- Android自定义组件——四个方向滑动的菜单实现
今天无意中实现了一个四个方向滑动的菜单,感觉挺好玩,滑动起来很顺手,既然已经做出来了就贴出来让大家也玩弄一下. 一.效果演示 (说明:目前没有安装Android模拟器,制作的动态图片太卡了,就贴一下静 ...