Python清洗常用工具
程序员文章站
2022-03-09 20:31:14
...
脏数据存在的几种问题
- 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 为终止值,20为个数 >>> 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]])
- np.sort(element)
上一篇: 关于pandas