专栏名称: 腾讯云加社区
目录
相关文章推荐
一念行者  ·  以大海而存在,让波浪境生境灭 ·  昨天  
51好读  ›  专栏  ›  腾讯云加社区

机器学习-数据清洗

腾讯云加社区  · 掘金  ·  · 2018-11-27 07:52

正文

阅读 38

机器学习-数据清洗

欢迎大家前往 腾讯云+社区 ,获取更多腾讯海量技术实践干货哦~

本文由 brzhang 发表

数据清洗

首先,为何需要对数据进行清洗

数据清洗的工作绝壁是非常枯燥的,做数据研究的的人绝对无法避开这个环节,其根本原因是因为我们从各种渠道拿到的数据可能会出现:

1、不合理的数据,你比如,样本中有些人的年龄超过了120岁,楼层的高度达到了1000层,以及其他的一些非常不合理的场景。

2、错误的类型,你比如,样例中,几乎所有的数据都是整形,然而,有一些是字符串类型,如果不进行处理,将这些数据直接喂给算法,一般情况下是要崩溃的。

3、计算机对于处理字符串类型比较吃力,有时候,需要我们将他转化为数字类型,这样就设计到一个映射关系,比如,样例性别,【男,女】,我们可以转化为1,2,房屋的类型【单间,一房一厅,二房一厅,三房一厅,商铺】可以对应的枚举出来,比如我在处理房屋朝向上的示例

#提取房屋的朝向
def parse_orientation(row):
    if '朝西南' in row:
        return 1
    elif '朝东北' in row:
        return 2
    elif '朝东' in row:
        return 3
    elif '朝南' in row:
        return 4
    elif '朝西北' in row:
        return 5
    elif '朝北' in row:
        return 6
    elif '朝东南' in row:
        return 7
    elif '朝南北' in row:
        return 8
    elif '朝西' in row:
        return 9
    else:
        return 10
复制代码

等等等等,我想说的是绝对还有很多你意想不到的场景,需要你耐心的打磨数据,将搜集到的原始数据,清洗成为可用的数据。

数据清洗需要掌握哪些黑科技

通常我们拿到的数据数据都可以简化为表格模型,无用你是xsl也好,csv亦或json数组也好,都可以利用pandas来读取,读取之后,接下来的工作基本上就是借助在pandas的一些api来做数据清洗工作了,如下,我读取了一份房价信息的数据表,这份数据当然是我自己根据上一篇文章,利用scrapy做了一个爬虫爬取的咯。

img
jupyter笔记

为了让我们能够更好的玩数据清洗,我也不吝啬的贡献出了一份非常全面的pandas的操作 Cheatsheet 一份,以及后面你一定会用到一个万能的 CheatSheet

来来,简单的了解一下pandas的一些常用的api了,举例就用:

img
示例数据一行

1、取子集常用操作

img
取子集

其中,loc是支持按照列名字符串的方式来取子集,iloc支持的是使用数组索引(从0开始)的方式来取子集,通常,逗号前面是行相关的一些条件限制,逗号右边则是列相关的限制。比如,我取得

img
我就取前两列

2、处理空白数据行

img
处理空白数据

这种就很简单愉快了,一个api就可以删除或者填充有空白数据的样本了。

这个就不演示了,因为我是爬虫爬取数据,所以在爬取的过程中,我已经对数据进行了一些基础的处理,程序控制不可能出现空白数据了,所以,我也是建议,自己写爬虫去获取数据,这些减轻数据清洗环节的压力。







请到「今天看啥」查看全文