• numpy、pandas做数据清洗


    <!doctype html>

    numpy、pandas做数据清洗

    numpy、pandas做数据清洗

    numpy、pandas空值的清洗

    有两种方式

    1. 删除空值所在的行数据
    2. 将缺失的行或者列进行删除

    使用到的数据判断方法:

    isnull:判断数据是否是为空,如果为空返回True,否则返回False

    notnull:判断数据是否非空,如果为空返回False,否则返回True

    any:与isnull组合判断

    dropna:删除数据中的空的行数据或者列数据,axis参数表示与其他相反,行为0,列为1

    fillna:对操作数据进行填充参数method='ffill'表示向前填充,'bfill'表示向后填充

    方式一的实例:

    方法一:

    from pandas import DataFrame,Series
    df = DataFrame(data = np.random.randint(0,100,size=(7,5)))
    #创建一个7行5列的二维数组
    #随机取值从0到100,形式是7行5列的数组
    #设置是三个空值
    df.iloc[3,4] = None   #三行四列的值为空
    df.iloc[2,2] = np.nan  #设置2行2列的值为NAN
    df.iloc[5,3] = None    #设置5行3列的值为空
    df   #panads会自动将None的空值转换成NaN
    #清洗空值的两种方式
    #方式一删除空所在的行数据
     #isnull、notnull、any、all
    df.isnull()   #用于判断数组内的数据是否为空,如果为空放回True,否则返回False
    df.isnull().all(axis=1)   #1表示行,0表示列     只有在drop中于此相反
    #all是行或列中如果出现False就返回False,只有都是True才返回True
    #any是行或者列中如果有一个为True,就返回True
    df.isnull().any(axis=1)   #1是行,0是列
    #将布尔值作为原数据的行索引:保留为True的行数据
    df.loc[df.isnull().any(axis=1)]   #根据isnull()的判断将有空值的行数据保留
    drop_index = df.loc[df.isnull().any(axis=1)].index  #提取出存在空值的行索引
    df.drop(labels=drop_index,axis=0)  #删除所在的行
    

    方法二:

    df.notnull().all(axis=1)    #notnull是判断不为空的返回True,否则返回False
    #找出所有有空的行数据
    #将布尔值作为行索引
    df.loc[df.notnull().all(axis=1)]
    #根据notnull的判断进行过滤出不为空的行数据
    

    方式二的实例:

    #方式二:dropna:可以直接将缺失的行或者列进行删除
    df.dropna(axis=0)   #在dropna中0表示行,1表示列
    

    drop_duplications(keep=False)

    删除重复的行数据

    keep=first

    保留第一行数据,删除其他行数据

    keep=last

    保留最后一行数据,删除其他重复数据

  • 相关阅读:
    git track
    npm 升级到最新版本
    三行代码实现垂直居中和cube
    布局之定位
    MongoDB的安装问题
    正则表达式
    javascript表单验证
    Oracle中创建表,行级触发器,序列
    查找某个字符在字符串中出现的次数
    oracle表中有一列id她是自动增长的,插入一条数据时怎么取得id的值
  • 原文地址:https://www.cnblogs.com/g15009428458/p/12638646.html
Copyright © 2020-2023  润新知