Python清洗常用工具

脏数据存在的几种问题

  • 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)
      >>> s
      array([ 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_arr
      array([   [ 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]])
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值