首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python与数据分析《二》

上一期我们用CSV包来了解了一下Python载入数据后的形态,这一期我们重点看来介绍载入数据的常用方法和载入后data clean的一些注意事项。

Python 载入数据的方法

COPY & PASTE

如同Excel复制粘贴的功能一样,在Python中,用pandas包也可以对clipboard进行写入和读取的功能,但要注意一点,毕竟copy& paste是在内存中进行的,如果对于过大的数据集,千万不要用,容易死机。

比如说我们想把Excel上的数据如下,复制粘贴入Python中,我们只需要复制以下数据:

然后运用以下方程,就能把数据贴入Python中。

FORMATTED FILES

这是比较常用的一种方法,毕竟在大多数时间里,我们的数据都是已经被format好的,比如说Excel、csv这两个比较常用的,还有就是SASdata, R data以及json, xml等一些特殊的数据文件,这些用pandas都能够被轻松的handle,你要做的也只是读懂方程的使用说明就好了。这里也不做过多的展示。

读者们常遇到的问题其实并不是pandas里读入数据方程的使用问题,而是一些参数的调整和使用问题,这里来列几个常用的:

index是干什么用的?

这里我们把A设置成index,我们先不做过多说明,因为这是我们下一期会讲的内容。读者们可以将index理解成它能够将一个dataframe变成横向的dictionary,这样在取值的速度上快上n倍。另一个很明显的好处就是,我们在join两个巨大表的时候,如果用index进行join,会比merge快上至少三个档次。

数据太大导致内存溢出怎么办?

这是一个很常见的问题,我们在当学生做一些data science项目的时候会常碰到这种情况,因为有时候给的数据有9G 而常见笔记本的内容也只有8G,这时候我们就需要用一些手段了。我们可能需要用到另外一些辅助性的工具,将这些data能够从外存上任意存取的形式,比如说database。关于database的library也有很多,这里我们就介绍一个比较常用的sqlite3,与postgresql和MSDB一样,sqlite3也是sql的一个平台,它会有一些异于SQL的一些地方,也会有多一些功能,但大体上和SQL相差不大,sqlite3是sqlite公司在python中写的一个对sqlitedatabase操作的包,具体可以google一下它的用法和功能。

下面是我用Sqlite3写的具有创立、写出、读取功能的class。

下一个问题就来了,比如说我们的数据是一个csv file,怎么把数据从csv转移到这个database里呢?如果大家读方程的使用说明足够仔细,再加上读我第一篇文章关于generator的简单介绍,就不难发现这个叫做chunksize的参数。它具体有什么用呢?说白了,就是把一个dataframe变成一个generator,size的大小是generator中一个分割单位的大小。使用这个参数后,dataframe会变成一个generator后,它在内存中的大小也仅仅是一个分割单位的大小。具体的操作及比较如下:

我们可以看到读入后大小和时间上,在添加chunksize变量和不添加chunksize变量上的巨大区别。希望大家还记得generator的使用方法:

在完成了能够读入csv后,我们就可以用database的方法去insert,然后再fetch了。

缺失值怎么处理?

对于缺失值,在data clean之初简直就是噩梦,特别是提供的数据中各种混搭,有些用“.”,“”,别的用“NA”,“Missing Value”等等等等,不可胜数。相信大家都是苦不堪言,我们虽然可以用na_values这个parameter,它的default值覆盖面积算是很光了,但不乏一些漏网之鱼。这需要耐心了,我们需要注意的一点是NoneType和nan的区别,有兴趣的同学可以查看以下nan是一种怎么样的数据类型,有趣的是它是float(并不能理解为什么Numpy的作者会把它写成一个float的类型),在一些判断条件的时候一定要注意了。

DATABASE

这里其实不用阐述了,比如说你要用oracle的database,你需要username / key才能够access到oracle的database,这都是有打包好的library和使用说明进行辅助的,在读懂了这些东西后,就是一些sql的操作了。

FROM WEBSITE

这里我并不打算讲爬虫,这个东西需要的基本功太多,如果以后心情好的话可以专门给大家做一期爬虫的入门教程,你需要准备的东西有:

HTML语言及authentication的方法;

Regular Expression是一种什么样的操作;

爬虫入门必备的beatuifulsoup及url包的使用说明;

一些简单的算法,常用的包括回溯法(recursive)。

这里,我们就简单的放一行代码:

下一期,我们来聊一聊怎么去manipulate data,这是data clean中一个很重要的步骤,是进行进一步分析的关键。

欢迎留言告诉我你们感兴趣的话题~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G02TL900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券