pandas (十) 缺失值的处理:填充、删除、过滤、查询

news2024/11/15 16:47:59

Pandas使用函数处理缺失值

  • isnull和notnull:检测是否是空值,可用于df和series
  • 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 : 按行还是列填充,1 or index’, 1 or 'columns
    inplace :如果为True则修改当前df,否则返回新的df
  • 读取excel,忽略前几行空行

    import pandas as pd
    df = pd.read_excel(fpath, skiprows=2)  skiprows=2 略过前两行
    
        Unnamed: 0   姓名   科目    分数
    0          NaN  小明   语文  85.0
    1          NaN  NaN   数学  80.0
    2          NaN  NaN   英语  90.0
    3          NaN  NaN   NaN   NaN
    4          NaN  小王   语文  85.0
    5          NaN  NaN   数学   NaN
    6          NaN  NaN   英语  90.0
    7          NaN  NaN   NaN   NaN
    8          NaN  小刚   语文  85.0
    9          NaN  NaN   数学  80.0
    10         NaN  NaN   英语  90.0
    
  • 检测空值

    df.isnull()           检测每一个的值是否为空值
    df['分数'].isnull()    检测每个人的分数是否为空值
    df['分数'].notnull()    检测每个人的分数是否不为空值
    0      True
    1      True
    2      True
    3     False
    4      True
    5     False
    6      True
    7     False
    8      True
    9      True
    10     True
    Name: 分数, dtype: bool
    
    获取分数不为空的所有行
    df.loc[df['分数'].notnull(), :]
    
    	Unnamed: 0	姓名	科目	分数
    0	NaN	小明	语文	85.0
    1	NaN	NaN	数学	80.0
    2	NaN	NaN	英语	90.0
    4	NaN	小王	语文	85.0
    6	NaN	NaN	英语	90.0
    8	NaN	小刚	语文	85.0
    9	NaN	NaN	数学	80.0
    10	NaN	NaN	英语	90.0
    
  • 删除全部是空值的列

    按列删除:   axis='columns'
    均为None:  how='all'  
    直接修改df:inplace=True
    df.dropna(axis='columns', how='all', inplace=True)
    
    姓名	科目	分数
    0	小明	语文	85.0
    1	NaN	数学	80.0
    ...
    8	小刚	语文	85.0
    9	NaN	数学	80.0
    
  • 删除全部是空值的行

    按行删除:   axis='index'
    均为None:  how='all'  
    直接修改df:inplace=True
    df.dropna(axis='index', how='all', inplace=True)
    
    姓名	科目	分数
    0	小明	语文	85.0
    1	NaN	数学	80.0
    5	NaN	数学	NaN
    ...
    8	小刚	语文	85.0
    9	NaN	数学	80.0
    
  • 将分数为空的填充为0分

    方式一: df.fillna({"分数": 0})
    方式二: df.loc[:, '分数'] = df['分数'].fillna(0)
    
    	姓名	科目	分数
    0	小明	语文	85.0
    1	NaN	数学	80.0
    2	NaN	英语	90.0
    4	小王	语文	85.0
    5	NaN	数学	0.0
    6	NaN	英语	90.0
    8	小刚	语文	85.0
    9	NaN	数学	80.0
    10	NaN	英语	90.0
    
  • 将姓名的缺失值填充: 使用前面的有效值填充,用ffill: forward fill

    加入姓名空了,使用前一个姓名不为空的填充
    df.loc[:, '姓名'] = df['姓名'].fillna(method='ffill')
    
  • 将清晰好的数据保存到excle中

    fpath = '/Users/python/Desktop/means/ml-25m/student_clear_excel.xlsx'
    df.to_excel(fpath, index=False) # 系统自己生成索引不写入excel中
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/709989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

630到期,全面整改完成!

2023年6月30日对于消费金融行业的同学来讲,是一个大日子。 因为在2022年7月12日的时候,银监会特意下发了一个通知,《提升金融服务质效的通知》,原文见文末。 里面要求各金融机构进行相应整改,而整改的截止日期就是2023…

C++ 多线程

多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。 基于进程的多任务处理是程序的并发执行。基于线程的多任务处理是同一程序的片段的并发执行。…

Unity GameFramework StarForce 流程介绍

一、游戏总入口 GameEntry 1.内建好的GameEntry.Builtin 提供了各种框架的组件封装 2.自定义GameEntry.Custom 根据提供的案例参考即可实现自己的组件 3.游戏入口GameEntry 二、实现自己的组件并注册到管理类中 我们自己的组件只需要继承UnityGameFramework.Runtime.Gam…

实现数据库增删改产+界面效果2-----jsp

任务 1.通过连接数据库完成用户登录模块。 2.登录成功后查询出一张数据库表中的内容;登录不成功返回登录页面。 3.登录页面端要有空值和非法字符验证。 4.登录成功后对一张表中数据进行增加、删除、修改和查询操作。 代码 数据库相关代码 创建数据库 名字为jdb…

76、基于STM32单片机车牌识别摄像头图像处理扫描设计(程序+原理图+PCB源文件+相关资料+参考PPT+元器件清单等)

单片机主芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元&a…

阿里拿38K出来的大佬良心分享,熬夜整理10 万字详细Java面试笔记

国内的互联网面试,恐怕是现存的、最接近科举考试的制度。 这是由于互联网IT行业的求职者太多了,如果考察的是清一溜的算法题和设计题,那么会要求面试官有极高的技术水平,还要花大量的时间成本和精力。 所以,八股文面…

#systemverilog# 关于随机约束之 unique 关键字

前言 在随机约束中,我们可以使用关键字 unique 。 使用关键字unique定义的SystemVerilog约束称为唯一约束。在随机化中,使用唯一约束可以生成变量集的唯一值或数组的唯一元素。这里着重解释一下变量集:是同一类型随机变量的集合。 通过unique约束我们可以完成以下任务: …

详解c++---哈希桶

目录标题 闭散列的回顾拉链法/哈希桶的原理准备工作find函数插入函数erase函数析构函数代码测试insert函数的改进 闭散列的回顾 在前面的学习中我们知道了闭散列的运算规则,当两个数据计算得到的位置发生冲突时,它会自动的往后寻找没有发生冲突的位置&a…

樽海鞘群算法(SSA)(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解 部分源码 %--------------------

torch_scatter安装踩坑实录

由于运行代码出现如下报错 ModuleNotFoundError: No module named torch_scatter因此,在网上找到一篇博客【不好使】 pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.12.1cu116.html(match) F:\matchCode\SuperGlue_training-main>p…

Bootstrap 表格

文章目录 Bootstrap 表格基本的表格可选的表格类条纹表格边框表格悬停表格精简表格 上下文类响应式表格 Bootstrap 表格 Bootstrap 提供了一个清晰的创建表格的布局。下表列出了 Bootstrap 支持的一些表格元素&#xff1a; 标签描述<table>为表格添加基础样式。<thea…

学习笔记-图解HTTP

1 Web及网络基础 1.1 适用Http协议访问Web 在浏览器上输入网址然后访问指定的网页&#xff0c;浏览器就相当于是客户端&#xff0c;访问的网址就是指向特定的服务器。 HTTP协议&#xff1a;HyperText Transfer Protocol&#xff0c;超文本传输协议。 Web是建立在HTTP协议上…

MySQL8.0安装详细教程

前言&#xff1a; MySQL版本区别&#xff1a; ● MySQL Community Server&#xff1a;Community是社区版本&#xff0c;开源免费&#xff0c;但不提供官方技术支持&#xff1b; ● MySQL Enterprise Edition&#xff1a;Enterprise企业版本&#xff0c;需付费&#xff0c;可以…

剑指 Offer 数组中数字出现的次数

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;数组中数字出现的次数 ⭕️ 代码&#xff1a; /*思路&#xff1a;有两个出现单次的数字&#xff0c;其余数字都出现两次。把所有的数字分成两组&#xff0c;这两个数组分到不同的组&#xff0c;异或起来&#xff0c;就可…

力扣 108. 将有序数组转换为二叉搜索树

题目来源&#xff1a;https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ C题解1&#xff1a;递归法。由于要求是平衡树&#xff0c;又给出了递增数组&#xff0c;所以构建二叉树只需将中间值作为中间节点&#xff0c;左右两边分属左右子树…

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic

无广告 齐全 简洁 免费的音乐开源软件&#xff08;支持 电脑max win linux 手机 &#xff09;——lxMusic 话不多说先上效果 &#xff08;真香&#xff09; 下载地址&#xff08;官方&#xff09; https://www.lanzoui.com/b0bf2cfa/ 密码&#xff1a;glqw 软件安装包说明 文…

python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

简介 当今社会在测试领域&#xff0c;接口测试已经越来越多的被提及&#xff0c;被重视&#xff0c;而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试&#xff0c;很多测试人员在接触到接口测试的时候&#xff0c;也许对测试执行还可以比较顺利的上手…

FDM3D打印系列——5、上色和灯光

3D打印扎古头可动并加灯 大家好&#xff0c;我是阿赵&#xff0c;这次通过一个实际操作的例子&#xff0c;来聊一下3D打印模型添加效果。这里主要讲2个方面&#xff0c;一个是上色&#xff0c;另一个是加灯光 一、上色 这个扎古头模型就是这次的主角。 1、打磨 可以看到&…

MIT 6.S081 教材第七章内容 -- 调度 -- 上

MIT 6.S081 教材第七章内容 -- 调度 -- 上 引言线程&#xff08;Thread&#xff09;概述XV6线程调度XV6线程切换实际切换流程 XV6进程切换示例程序yield/sched函数switch函数scheduler函数 补充 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第七章教材内容翻译加整理…