博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python清洗常用工具
阅读量:2165 次
发布时间:2019-05-01

本文共 2723 字,大约阅读时间需要 9 分钟。

脏数据存在的几种问题

  • 1.数据缺失(Incomplete):属性值为空的情况.如Occupancy=” ”
  • 2.数据噪音(Noisy):数据值不合常理的情况。如Wage = -100
  • 3.数据不一致(Inconsistent):数据前后存在矛盾。如age=”042”或Birthday=“01/09/2015”
  • 4.数据冗余(Redundant):数据量或属性数目超出数据分析需要的情况
  • 5.离群点/异常值(outliers):偏离大部分值的数据
  • 6.数据重复:在数据集中出现多次的数据

python的Numpy和Pandas主流清洗工具包

  • Numpy向量化运算是数据处理变得高效
  • Pandas提供大量数据清洗的高效方法- Python中,尽可能使用Numpy和Pandas函数,提高清洗效率## Numpy 常用数据结构
  • 常用数据结构是ndarray(n dimension array)
  • 使用array函数创建,语法为 array(列表或元组)
  • 可以使用其他函数如arange、linspace,zeros等创建

数组创建,操作

  • 操作如下
    # 导入库import numpy as np# 1.创建以集合[-9,8,4,90]为元素数组arr1 = np.array([-9,8,4,90]) # 2.从0开始,创建5个元素,步长为1,左闭右开>>> np.arange(0,5,1)array([0, 1, 2, 3, 4]) # 3.创建等差数组,1为起始值,10 为终止值,5为个数>>> np.linspace(1,10,5)array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ]) # 4.产生总数为11个0的一维数组,元素全为0 >>> np.zeros(11) array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])  # 5.产生4行5列的二维数组,元素全为0 >>> np.zeros([4,5]) array([[0., 0., 0., 0., 0.],       	   [0., 0., 0., 0., 0.],       	   [0., 0., 0., 0., 0.],         	   [0., 0., 0., 0., 0.]]) # 6.产生总数为11个0的一维数组,元素全为1 >>> np.ones(4)array([1., 1., 1., 1.])  # 7.产生4行5列的二维数组,元素全为1 >>> np.ones([4,5]) array([  	    [1., 1., 1., 1., 1.],       	    [1., 1., 1., 1., 1.],        	    [1., 1., 1., 1., 1.],         	    [1., 1., 1., 1., 1.]]) # 8.查看长度 >>> np_darr  = np.ones([4,5]) >>> np_darr.size 20 # 9.查看类型 >>> np_darr.dtype dtype('float64')  # 10.查看数组维度 >>> np_darr.shape(4, 5)  # 11.按下标取元素,下标也是左开右闭 # 11.1 一维数组 >>> np_darr2  = np.ones([5]) #11.2获取下标从0到1的所有元素 >>> np_darr2[0:2] array([1., 1.])  # 12.1 二维数组,第一个参数是对行操作,第二个参数是对列操作,下标是左闭右开 >>> np_darr2  = np.array([[1,2,3],[4,5,6],[7,8,9]]) # 2.2 获取1行2列元素 >>> np_darr2[1,2] 6 #同 np_darr2[1,2] >>> np_darr2[1][2] 6   # 12.3获取第1,2列元素 >>> np_darr2[:,0:2] array([ 	   [1, 2],        	   [4, 5],        	   [7, 8]]) # 2.3获取第2列 >>> np_darr2[:,2] array([3, 6, 9])

常见清洗函数

  • 排序
    • np.sort(element)
      >>> s = np.array([1,23,2,4,10,9,10])>>> s = np.sort(s)>>> sarray([ 1,  2,  4,  9, 10, 10, 23])
    • python sort
      >>> np.array(sorted(s,reverse=True))array([23, 10, 10,  9,  4,  2,  1])>>> np.array(sorted(s))array([ 1,  2,  4,  9, 10, 10, 23])
    • np.argsort(s),返回原始数组,元素按照降序进行下标返回
      array([ 1,  2,  4,  9, 10, 10, 23])>>> s = np.array([1,23,2,4,10,9,10])# 升序返回原始数组,每个元素下标>>> np.argsort(s)array([0, 2, 3, 5, 4, 6, 1], dtype=int64)
    • np.sort()应用二维数组
      #二维数组>>> td_arr= np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])>>> td_arrarray([   [ 0,  1,  3],                [ 4,  2,  9],                  [ 4,  5,  9],                  [ 1, -3,  4]]) # 按行进行排序>>> np.sort(td_arr,axis=0)    array([ [ 0, -3,  3],           	    [ 1,  1,  4],              	    [ 4,  2,  9],           	    [ 4,  5,  9]       	    ])# 按列排序>>> np.sort(td_arr,axis=1)   array([[ 0,  1,  3],          [ 2,  4,  9],          [ 4,  5,  9],          [-3,  1,  4]])

转载地址:http://chjzb.baihongyu.com/

你可能感兴趣的文章
走进JavaWeb技术世界3:JDBC的进化与连接池技术
查看>>
走进JavaWeb技术世界4:Servlet 工作原理详解
查看>>
走进JavaWeb技术世界5:初探Tomcat的HTTP请求过程
查看>>
走进JavaWeb技术世界6:Tomcat5总体架构剖析
查看>>
走进JavaWeb技术世界7:Tomcat和其他WEB容器的区别
查看>>
走进JavaWeb技术世界9:Java日志系统的诞生与发展
查看>>
走进JavaWeb技术世界10:从JavaBean讲到Spring
查看>>
走进JavaWeb技术世界11:单元测试框架Junit
查看>>
走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
查看>>
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
查看>>
走进JavaWeb技术世界14:Mybatis入门
查看>>
走进JavaWeb技术世界16:极简配置的SpringBoot
查看>>
初探Java设计模式1:创建型模式(工厂,单例等)
查看>>
初探Java设计模式2:结构型模式(代理模式,适配器模式等)
查看>>
初探Java设计模式3:行为型模式(策略,观察者等)
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>