python数据清洗--常用工具 - Go语言中文社区

python数据清洗--常用工具


  1. 目前在Python中, numpy和pandas是最主流的工具
  2. Numpy中的向量化运算使得数据处理变得高效
  3. Pandas提供了大量数据清洗的高效方法
  4. 在Python中,尽可能多的使用numpy和pandas中的
    函数,提高数据清洗的效率

1.Numpy

  1. Numpy中常用的数据结构是ndarray格式
  2. 使用array函数创建,语法格式为array(列表或元组)
  3. 可以使用其他函数例如arange、linspace、zeros等创建
  4. Numpy常用方法
    在这里插入图片描述
  5. 数组索引方式
    在这里插入图片描述
  6. 常用数据清洗函数:排序,搜索
    np.sort函数: 从小到大进行排序
    np.argsort函数: 返回的是数据中从小到大的索引值
    np.where: 可以自定义返回满足条件的情况
    np.extract: 返回满足条件的元素值

1.1. 数组创建

import numpy as np          # 导入库
arr1 = np.array([-9,7,4,3])
arr2 = np.array([-9,7,4,3],dtype =float)# 尝试改变为int或者str
print(arr2)
arr3 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
arr3
# 使用其他函数创建数组
np.arange(0,10,1)   
np.linspace(1,10,10)
np.zeros([4,5])
np.ones([2,3])  
arr3 + 1 #矩阵运算

1.2.数组方法

# 查看数组维度
arr3.ndim 
arr3.shape
arr3.size
arr3.dtype
arr3 + 1 #矩阵运算
arr3 /2
data2 = ((8.5,6,4.1,2,0.7),(1.5,3,5.4,7.3,9),(3.2,4.5,6,3,9),(11.2,13.4,15.6,17.8,19))
arr2 = np.array(data2)
arr2[2] #访问第三行,可以理解为行索引
arr2[2,1] #访问第三行,可以理解为行索引
arr2[:,2:4] #访问第三列
arr2[1:3] #2行和3行
arr2[1:,2:] #第2行到最后一行,第3列到最后一列
arr2[2,1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引
arr2[2][1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引

1.3. Numpy常用数据清洗函数

排序
降序建议用sorted函数

s  = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
np.sort(s)
sorted(s,reverse =True)#降序
arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])
np.sort(arr1)
np.sort(arr1,axis = 0) # 0代表沿着行的方向, 1代表沿着列的方向
np.sort(arr1,axis = 1)

argsort返回的是排完序以后,在原数据中的索引位置
返回的是数据中,从小到大的索引值

s = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
np.argsort(s) 

np.where和np.extract

np.where(s>3,1,-1)     # 满足条件的,赋值为3,不满足的赋值为-1,返回的数据长度和s一样

np.extract 只会输出满足条件的数据

np.extract(s>3,s)       # 只输出满足条件的数据

2.pandas

1.Pandas常用数据结构series和方法
• 通过pandas.Series来创建Series数据结构。
• pandas.Series(data,index,dtype,name)。
• 上述参数中,data可以为列表,array或者dict。
• 上述参数中, index表示索引,必须与数据同长度,name代表对象的名称
2.Pandas常用数据结构dataframe和方法
• 通过pandas.DataFrame来创建DataFrame数据结构。
• pandas. DataFrame(data,index,dtype,columns)。
• 上述参数中,data可以为列表,array或者dict。
• 上述参数中, index表示行索引, columns代表列名或者列标签
3.series和dataframe常用方法
在这里插入图片描述

2.1. series序列

import pandas as pd
import numpy as np
# 构造序列
series1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
series2 = pd.Series([2.8,3.01,8.99,8.59,5.18],index = ['a','b','c','d','e'],name ='这是一个series')
series3 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
#series方法
series2.values
series3.index

2.2.dafaframe

# 构造数据框
#数据框其实就是一个二维表结构,是数据分析中,最常用的数据结构
list1 = [['张三',23,'男'],['李四',27,'女'],['王二',26,'女']]#使用嵌套列表
df1 = pd.DataFrame(list1,columns=['姓名','年龄','性别'])
type(df1)
df2 = pd.DataFrame({'姓名':['张三','李四','王二'],'年龄':[23,27,26],'性别':['男','女','女']}) #使用字典,字典的键被当成列名
df2
array1 = np.array([['张三',23,'男'],['李四',27,'女'],['王二', 26,'女']]) #使用numpy
df3 = pd.DataFrame(array1,columns=['姓名','年龄','性别'],index = ['a','b','c'] )
#dataframe方法
df2.values
df2.index
df2.columns
df2.dtypes
df2.ndim
df2.size
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qiuqiu1027/article/details/104997631
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢