码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Pandas总结】第四节 Pandas 缺失值处理(通过实例进行演示)


    文章目录

    • 核心知识点
      • 一、检测空值: `isnull()` `notnull()`
      • 二、删除空值: `dropna()`
      • 三、填充空值: `fillna()`
    • 实例
      • 结果对比
      • 一、读入数据
      • 二、去掉无用的行
      • 三、 去掉全部为空值的列
      • 四、 去掉全部为空值的行
      • 五、将成绩为NaN的单元格,填充为0
      • 六、将缺失的姓名填充
      • 七、保存到excel中

    核心知识点

    一、检测空值: isnull() notnull()

    df.isnull() 与 df.notnull() :用于检测dataframe 或者 series
    在这里插入图片描述

    二、删除空值: dropna()

    格式:df.dropna(DataFrame, axis='',how='', inplace='')

    参数说明
    DataFrame待处理的df
    axis删除行还是删除列,传入0或者’index’ 代表行,传入1或者’columns’ 代表列
    how‘any’ 表示任何值为空都删除,‘all’ 表示所有值为空才删除
    inplaceTrue 表示修改当前df; false 表示返回修改后的df, 默认为false

    举例可以参考下面的实例;

    三、填充空值: fillna()

    格式:df.fillna(value='', method='', axis='',inplace='')

    参数说明
    value用于填充的值,可以是单个值或者字典(key是列名,value是用于填充的值)
    method‘ffill’:即forword fill ,使用前一个不为空的值进行填充
    ‘bfill’:即backfill, 使用后一个不为空的值进行填充
    axis删除行还是删除列,传入0或者’index’ 代表行,传入1或者’columns’ 代表列
    inplaceTrue 表示修改当前df; false 表示返回修改后的df, 默认为false

    举例可以参考下面的实例;

    实例

    现实中,经常有一些非常漂亮的Excel, 例如下面的例子中的Excel。 这种Excel虽然好看,但是却不满足数据处理的要求,数据处理时,需要的是一个标准的表格,不包含合并单元格等这些格式; 这就需要我们对数据进行处理,这里举一个例子,供大家参考:

    结果对比

    处理前: 好看但不好用!
    在这里插入图片描述

    处理后:不好看,但好用!
    在这里插入图片描述

    一、读入数据

    data_path=r"E:\VSCODE\2_numpy_pandas\pandas\data.xlsx"
    df=pd.read_excel(data_path)
    print(df)
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    二、去掉无用的行

    可以看到,读出的数据并非是我们想要的,我们需要的数据只有蓝色区域内,这时我们需要对读入的数据进行处理;首先我们需要把无用的行去掉,这里可以使用pd.read_excel 函数中的参数来修改,详细的内容可以参考:【Pandas总结】第二节 Pandas 的数据读取_pd.read_csv()的使用详解 , 将代码修改为:

    df=pd.read_excel(data_path,skiprows=2)
    
    • 1

    这样处理后,打印的结果为:
    在这里插入图片描述

    三、 去掉全部为空值的列

    使用drop.na 来处理全部为空值的列;

    df.dropna(axis="columns",how="all",inplace=True)
    print(df)
    
    • 1
    • 2

    可以看到,全部为空值的列没有了;
    在这里插入图片描述

    四、 去掉全部为空值的行

    与去除列的方式一样,只要将axis的参数改为rows, 即可删除全部为空值的列;代码如下:

    df.dropna(axis="rows",how="all",inplace=True)
    print(df)
    
    • 1
    • 2

    在这里插入图片描述

    五、将成绩为NaN的单元格,填充为0

    使用fillna() 来处理全部为空值的列;

    df = df.fillna({"成绩":0})
    print(df)
    
    • 1
    • 2

    在这里插入图片描述

    六、将缺失的姓名填充

    df = df.fillna(method='ffill')
    print(df)
    
    • 1
    • 2

    在这里插入图片描述

    七、保存到excel中

    data_path_new = r"E:\VSCODE\2_numpy_pandas\pandas\data_new.xlsx"
    df.to_excel(data_path_new)
    
    • 1
    • 2
  • 相关阅读:
    实体链指(1)Entity Linking 综述
    C++标准模板(STL)- 输入/输出操纵符-(std::setprecision,std::setw)
    【AUTOSAR-CanIf】-2.2-图解常用Software Filter Algorithm及其应用场景
    FastGPT 手动部署错误:MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongo
    地平线 旭日X3 PI (三) 模型转换
    day2【代码随想录】移除元素
    C++ 基础(十二)函数-题目练习
    选择HAL库还是标准库
    设计模式——总结
    Selenium基础 — 多窗口操作
  • 原文地址:https://blog.csdn.net/weixin_47139649/article/details/126850209
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号