数据清洗实战入门——常用数据结构

numpy常用数据结构——ndarray

  • 实质:矩阵/n维数组
  • 创建方法:
    • array(列表/元组):
      • 不指定数据类型:np.array([1,2,3]) => [1,2,3]
      • 指定数据类型:np.array([1,2,3],dtype=str/float/int)
    • 创建多维数组:
      • 使用嵌套列表:np.array([[1,2],[3,4],[5,6]])
      • 使用arange:np.arange(a,b,s) #a为起始值,b为终止值,s为步长,左闭右开,不包含终止值
    • 创建等差数列:np.linspace(a,b,n,endpoint=True/False) #a为起始值,b为终止值,n为数组中的元素个数,endpoint表示包不包含终止值
    • 创建全零矩阵(默认浮点型):
      • np.zeros(4) => [0.,0.,0.,0.]
      • np.zeros([4,5]) =>四行五列的全零矩阵
    • 创建全一矩阵(默认浮点型):np.ones() #同zeros
  • 运算操作:
    • 加上一个数 = 矩阵中每个元素都加上这个数
    • 求矩阵维数:arr.ndim #arr为矩阵名,ndim无参数
    • 求矩阵行形状(行数&列数):arr.shape
    • 求矩阵元素个数(行数*列数):arr.size
    • 求矩阵元素类型:arr.dtype
    • 矩阵访问:
      • 访问元素:arr[a,b] #a、b以下标访问
      • 访问行/列:arr[a/b] #缺省列/行
      • 可以用切片的方式访问

numpy数据清洗常用函数

数据排序

  • sort函数:
    • 对一维数组:np.sort(arr) => 对arr进行从小到大进行排序并返回,arr不变
    • 对二维数组进行sort操作时,默认对每行进行排序:np.sort(arr,axis=0) #当axis=1时,对每列进行排序
  • argsort函数:np.argsort(arr) => 返回对arr排序后每个元素对应于arr的下标

其他函数

  • where函数:
    • 作用:根据条件改变矩阵中每个元素
    • 用法:np.where(a,b,c) #a为判别式,若为true,则b,若为false,则c;类似于C语言的>?;
    • 示例:np.where(arr>3,arr,-1) #对arr中每个元素进行判断,若该元素大于3,则该元素仍为该元素,否则,该元素变为-1
  • extract函数:
    • 作用:筛选出矩阵中满足条件的元素
    • 待补充

pandas常用数据结构——series

  • 实质:元素为字典对
  • 创建方法:pandas.Series(data,index,dtype,name)
    • data可以为列表、数组、字典;
    • index为索引,必须与数据同长度,可缺省;
    • name为对象名称,可缺省;
  • 示例:
    • 列表创建:pandas.Series([21,23,45],index=['a','b','c']),若缺省index,则默认以下标为索引(0,1,2,……),返回的内容其实就是字典对(索引,值)
    • 字典创建:该方法可缺省index,直接在data中就指定了索引
  • 访问:(ser为Series变量名)
    • 以下标/索引访问,可用切片,返回的是(索引,值)这样一个对
    • ser.values:输出值,返回对象是array对象
    • ser.index:输出索引
    • ser.dtypes:输出数据类型

pandas常用数据结构——dataframe

  • 本质:数据表

  • 创建方法:pandas.Dataframe(data,index,dtype,columns)

    • data可以为列表、数组、字典;
    • index为行索引名称,定义方法同series;
    • columns为列名;
  • 示例:

    • data为嵌套列表,一般为二维列表;在这里插入图片描述
    • data为字典,该字典的键为列名,值为列表,包含该列的所有数据;
      在这里插入图片描述
    • data为array,类似list;
      在这里插入图片描述
  • 操作方法:

    • df.values
    • df.index
    • df.columns
    • df.columns.tolist(),把columns转换为list形式
    • df.ndim
    • df.shape
    • df.size
    • df.dtypes
  • 使用技巧:

    • 判断每一列是否有空值:df.isna().any(axis=0)
    • 判断每一行是否有空值:df.isna().any(axis=1)
    • 设置显示参数:pd.set_option('display.width',100); pd.set_option('display.max_columns',None); pd.set_option('display.max_rows',None);
    • 查看某一列不同值出现的次数:df.colName.value_counts()
    • 判断df中是否有重复行:df.duplicated()
    • 统一日期格式:pd.to_datetime(df['col'], format='%Y-%m-%d),format可自定义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值