数据预处理

  • 一、了解什么是预处理
  • 二、为什么要进行预处理
  • 三、数据预处理基本方法
    • 1、基础方法
  • 四、应用
    • 1.准备数据
    • 2.导入库
    • 3.导入数据集
    • 4. 数据清洗——查看缺失值
      • (1)处理普通空值
      • (2)处理年龄年份金额等数据
    • 5. 数据归约
    • 6. 数据变换

一、了解什么是预处理

数据预处理就是一种数据挖掘技术,本质就是为了将原始数据转换为可以理解的格式或者符合我们挖掘的格式

二、为什么要进行预处理

在真实世界中,数据通常是不完整的(缺少某些感兴趣的属性值)、不一致的(包含代码或者名称的差异)、极易受到噪声(错误或异常值)的侵扰的。因为数据库太大,而且数据集经常来自多个异种数据源,低质量的数据将导致低质量的挖掘结果。

三、数据预处理基本方法

1、基础方法

  • 数据清洗: 填写缺失的值,光滑噪声数据,识别或删除离群点,并解决不一致性来“清理数据”;
  • 数据集成:使用多个数据库,数据立方体或文件;
  • 数据归约: 用替代的,较小的数据表示形式替换元数据,得到信息内容的损失最小化,方法包括维规约,数量规约和数据压缩;
  • 数据变换:将数据变换成使用挖掘的形式。
    形象化:

四、应用

用 Python 来处理,还需要用到两个库,分别是 Numpy、Pandas。

1.准备数据

有一个数据集,其中包括IT专业人员的信息,比如国家、工资、性别,如下:

我们可以随意创建此数据集的副本。

我们可以观察到上面的数据集包含一些空值

2.导入库

Numpy 库包含数学工具,它可以用于在我们代码中的任何类型的数学;
Pandas 库用于导入和管理数据集。
导入库的方法:

import pandas as pd
import numpy as np

3.导入数据集

我将我的数据集文件命名为‘profess’,它的格式为.csv。

#读取数据(我的数据集文件跟我的python文件在同一目录下)
data = pd.read_csv("profess.csv")

导入数据集后,我们输出看下它的格式如何:

print(data)

4. 数据清洗——查看缺失值

用 Pandas 库的 isnull 函数来看看。

print(data.isnull().sum())

Age,Salary 列都有缺失值(就是为空的值),缺失值数量都为1。处理缺失值有7种处理方法,我们这里说说比较常用的两种。

(1)处理普通空值

如果某行有特定特征d的空值,就删除此行。如果特定列具有超过75%的缺失值,就删除特定列。不过我们要在确保样本数据足够多的情况下,采用这个方法。因为我们要确保删除数据后,不会增加偏差。

data.dropna(inplace=True)
print(data.isnull().sum())

(2)处理年龄年份金额等数据

这个方法适用于具有年份或者年龄,金额等数字数据的功能。我们可以计算特征的均值,中值或众数,将其替换为缺失值。与第一种方法相比,这种可以抵消数据的缺失,产生更好的效果。

我们用来看一下操作:

# 将 Age 列中为空的值替换为 Age 的中位数。# medain()是 pandas 库的求中位数的方法data['Age'] = data['Age'].replace(np.NaN,data['Age'].median())print(data['Age'])

5. 数据归约

为了满足挖掘需求,我们需要知道这些工程师们的薪水分布区间,但是我们只有‘Salary’ 薪水这一列,所以为了方便挖掘,我们给我们的数据集增加‘薪水等级’ level 这一列,通过 Salary 列进行区间归约,这种方法叫做“属性构造”。我们看看操作:

**#数据归约
def section(d):   if 50000 > d:        return "50000以下"if  100000 > d >= 5000:        return "50000-100000"if  d > 100000:       return "100000以上"data['level'] =  data['Salary'].apply(lambda x: section(x))print(data['level'])**


我们定义一个‘数据变换’的函数给,根据 Salary 判断选择区间进行变换并赋值给 level。

6. 数据变换

我们可以看到 Salary 列也有空值,从业务上理解它应该是数字数值才是。但是我们发现我们的数据集中是货币格式,我们需要对它进行‘数据变换’,转换成我们所需的数字格式。来看下实际操作:

#数据变换
def convert_currency(d):new_value = str(d).replace(",","").replace("$","")return float(new_value)    data['Salary'] = data['Salary'].apply(convert_currency)# mean()是 pandas 库的求平均值的方法data['Salary'] = data['Salary'].replace(np.NaN,data['Salary'].mean())
print(data['Salary'])

变换成功:

我们定义一个“数据变换”的函数,然后将它应用再 Salary 列上,最后同数据清洗那一步同样的替换操作,我们这里用平均值替换。

大数据项目1(数据预处理问题)相关推荐

  1. 大数据项目中的QA需要迎接新的挑战

    大数据项目中的QA需要迎接新的挑战 根据IDC全球半年度大数据和分析支出指南的最新预测,到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元.在大数据和业务分析解决方案上投资增长最快的行 ...

  2. print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战

    根据IDC全球半年度大数据和分析支出指南的最新预测,到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元.在大数据和业务分析解决方案上投资增长最快的行业包括银行(复合年增长率13.3%) ...

  3. 大数据离线处理数据项目(一) 网站日志文件数据采集 日志拆分 数据采集到HDFS并进行预处理

    简介: 这篇写的是大数据离线处理数据项目的第一个流程:数据采集 主要内容: 1)利用flume采集网站日志文件数据到access.log 2)编写shell脚本:把采集到的日志数据文件拆分(否则acc ...

  4. 掰一掰GitHub上优秀的大数据项目

    VMware CEO Pat Gelsinger曾说:   数据科学是未来,大数据分析则是打开未来之门的钥匙 企业正在迅速用新技术武装自己以便从大数据项目中获益.各行业对大数据分析人才的需求也迫使我们 ...

  5. 企业级大数据项目【1】需求分析及概要设计篇

    1学习要求 每日总结当天内容 需求是什么 解决需求的方案是什么 具体实现逻辑是什么 开发过程中有遇到哪些问题 2项目背景 某APP上线后,由于业务模式新颖,市场需求量大,经过一段时间的精心运营后,逐渐 ...

  6. 电商数仓描述_笔记-尚硅谷大数据项目数据仓库-电商数仓V1.2新版

    架构 项目框架 数仓架构 存储压缩 Snappy与LZO LZO安装: 读取LZO文件时,需要先创建索引,才可以进行切片. 框架版本选型Apache:运维麻烦,需要自己调研兼容性. CDH:国内使用最 ...

  7. 企业大数据项目规划落地实施路线图

    一般来说,一个完整的大数据项目实施,需要经过开发环境搭建.集群环境部署.数据采集.数据存储与交换.数据离线与实时分析.大数据可视化等多个实现流程,这就要求系统掌握大数据技术知识. 下面以一个完整的大数 ...

  8. 最详细大数据项目落地路线图实践总结

    今天,来谈一谈"大数据项目如何落地?"这个话题.从事过多个大数据项目的规划方案及项目落地工作,在这里与大家分享一些心得,主要是关于大数据项目如何成功落地并取得预期目标,也可以说这些 ...

  9. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(四)

    大数据项目实战 第四章 数据预处理 文章目录 大数据项目实战 学习目标 一.分析预处理数据 1)salary 2)city 3)skillLabels 4)companyLabelList.posit ...

最新文章

  1. 韩宇:如何准备天池深度学习比赛?
  2. rest_framework11:jwt简单例子/自定制基于jwt认证类
  3. ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
  4. Windows C盘格式化或者同平台迁移oracle数据库
  5. 【MapGIS精品教程】006:MapGIS根据经纬度计算各比例尺图幅编号
  6. PHP折算,PHP实现货币换算的方法
  7. 【discuzX2】模板解析语法就template()函数分析
  8. Highcharts的spline示例
  9. Cocos Creator接入谷歌广告AdMob详细教程(原创)
  10. 使用linux时电脑突然蓝屏,Win7系统电脑突然蓝屏提示的解决方法
  11. NVIDIA GeForce 800系列详细配置参数
  12. springboot基于微信小程序“智慧校园” 一体式的设计与实现毕业设计源码091634
  13. H3C S3610 交换机组播静态路由的配置
  14. 关于NS3中各个WifiRemoteStationManager(二)
  15. 旗下企业永远不会超过七家 马云
  16. FIR内插滤波器结构与代码实现
  17. 测试高考体育成绩的软件,高考体育成绩查询
  18. 信捷触摸屏通讯示例1
  19. 两个PDF比较标出差异_5款“业界良心”级的PDF处理工具,哪些真“免费”,哪款最好用?...
  20. Linux中处置挖矿病毒样本演示

热门文章

  1. 彻底关闭苹果系统更新_iOS13.2系统彻底关闭,杀后台问题终于被埋进坟墓
  2. 经典算法之折半插入排序法
  3. flamingo的中文意思是什么,《flamingo什么意思》在线 - 闰看365影院
  4. 每日一问 --如何理解复信号?
  5. java数组循环_Java之循环结构及数组
  6. 华为鸿蒙系统有哪些新功能,华为将举行开发者大会,鸿蒙2.0系统确认,EMUI 11新功能曝光...
  7. php一点通,编程一点通app下载-编程一点通正式版v1.0.1-E线软件园
  8. 影驰 H610M 光影主板 评测
  9. h5跳转小程序、短信跳转小程序<wx-open-launch-weapp>干货满满
  10. MPAndroidChart项目实战(七)——自定义横向柱状图