zoukankan      html  css  js  c++  java
  • pandas对缺失值的处理

    # Pandas对缺失值的处理(判断是否为空、删除or丢弃、填充空值)
    
    # pandas使用这些函数处理缺失值:
    #     isnull 和 notnull :检验是否是空值,可用于series和df
    #     dropna:丢弃、删除缺失值
    #            axis:删除行还是列,{0 or “index”,1 or “columns”},default 0
    #            how :如果等于any则任何值为空都删除,如果等于all则所有值为空才删除
    #            inplace: 如果是True则修改当前df,否则返回新的df
    #      fillna:填充空值
    #             value: 用于填充的值,可以是单个值,或者字典(key是列名,value是值)
    #             method : 等于ffill使用前一个不为空的值填充forword fill;;等于bfill使用后一个不为空的值填充backword fill
    #             axis : 按行还是列进行填充{0 or“index”,1 or“columns”}
    #             inplace: 如果是True则修改当前df,否则返回新的df
    
    
    
    import pandas as pd 
    # 实例:特殊excel的读取、清洗、处理
    
    # 步骤1 读取excel的时候,忽略前几个空行
    studf = pd.read_excel("文件路径",skiprows=2)   #跳过前2个空行
    
    # 步骤2 检测空值
    studf.isnull()
    studf["分数"].isnull()
    studf["分数"].notnull()
    # 筛选没有空分数的所有行
    studf.loc[studf["分数"].notnull(),:]
    
    
    
    # 步骤3: 删除掉全是空值的列
    studf.dropna(axis = "columns",how="all",inplace = True)
    
    # 步骤4 : 删除掉全是空值的行
    studf.dropna(axis = "index",how = "all",inplace=True)
    
    
    # 步骤5 : 将分数列为空的填充为0分
    studf.fillna({"分数":0})
    # 等同于
    studf.loc[:,"分数"] = studf["分数"].fillna(0)
    
    
    # 步骤6   将姓名的缺失值天填充
    # 使用前面的有效值填充,有ffill:forword fill
    studf.loc[:,"姓名"] = studf["姓名"].fillna(method = "ffill")
    
    # 步骤7  将清洗好的excel保存
    studf.to_excel("保存路径",index = False)   #去除索引
  • 相关阅读:
    jvm系列(八):jvm知识点总览-高级Java工程师面试必备
    jvm系列(七):jvm调优-工具篇
    JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
    Java ClassLoader详解
    语言堆栈入门——堆和栈的区别
    kubernetes基本了解
    软编码和硬编码的理解
    前台页面传日期类型后台接收问题
    mybatis-plus简单了解
    二叉树基础知识
  • 原文地址:https://www.cnblogs.com/spp666/p/11853418.html
Copyright © 2011-2022 走看看