| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Python处理数据中的空值(缺失值)时用到的dropna()函数和fillna()函数总结,通过示例弄懂这两个函数的用法。 -> 正文阅读 |
|
[人工智能]Python处理数据中的空值(缺失值)时用到的dropna()函数和fillna()函数总结,通过示例弄懂这两个函数的用法。 |
引言:在用python处理数据时,我们通常会遇到数据不完整的情况,比如有空值的时候,我们想要删除控制所在的行或列,或者是我们给空值设置为某一个值。这时候就可以用dropna和fillna两个函数来实现空值的处理。 目录(一)、dropna()函数的用法。dropna(axis,how,thresh,subset,inplace) 参数说明:
讲完参数的概念,我们来看一个例子来看一下这些参数对函数的影响和作用。 示例: 先创建一个3X4的矩阵,然后在指定的位置设置一些空值,然后对包含空值的数据进行处理。
创建的数据如下图所示: 行标识是0,1,2,3;列标识是a,b,c,这是我自己命名的,不算矩阵数据哈。 ?注意:我们这里声明参数的时候,没有声明的则都是默认的参数,声明的则都是把默认参数改为我们想要的参数,发挥的作用是不同的,没有声明的话,则看前面我对各个参数的解释。接下来看一下参数不同时,结果的差异。 调用函数dataSet.deropna(),所有的参数都为默认值,那么会删除空值所在的第一行和第二行的数据。我们来看以下结果。我直接把代码和结果截图在一起了。 ?调用函数dataSet.dropna(axis=1),其他参数默认,删除空值nan所在的列。如下图所示。 ?调用函数dataSet.dropna(axis=1,how='all'),我们会删除整列都是空值的=列,但是我们的数据中,没有一列都为空值nan的列,所以,结果还是原数据的结果,没有改变。结果如图所示。 ?调用函数dataSet.dropna(axis=1,thresh=3),意思是我每一列的非空的值的数量只要大于等于3我就保留,否则删除这一列。因为原数据中,b这一列的非空值的数量为2,并不大于3,所以要删除b这一列。结果如下图所示。 ?调用函数dataSet.dropna(axis=1,subset=[‘b’]),如果axis=0,表示如果指定行x中有空值,则删除所在的列;如果axis=1,表示如果指定列x有空值,则删除空值所在的行。所以我调用的这个语句的意思是,我要指定b这一列如果有空值的话我就删除空值所在的行,如果没有空值,那就不做操作。结果如下图所示。 ?调用函数dataSet.dropna(inplace=True),参数为True时,表明我是在原数据上操作的,没有原数据的副本,我们上面调用的那些函数的参数inplace都是默认值False,我们在调用上面那些函数之后,可以打印输出一下dataSet这个原数据,他并没用改变。如果我这里是True的话,则原数据也改变了。如下图所示。可以看出原数据也改变了。 ?总结:上面就是关于dropna函数的用法,大家可以通过改变不同的参数实践一下,看一下效果,动手实践会让自己更加印象深刻哦。 (二)、fillna()函数的用法fillna(axis,mthod,limit,inplace) 看起来是不是和dropna函数的参数长的非常像。inplace的含义和dropna函数中的参数含义一样,这里不再解释。
示例:我们还以之前的那个数据为例,创建数据矩阵。如下图所示,需要引入头文件numpy和pandas,看上面的程序。 ?调用函数dataSet.fillna(100),如果不指定任何参数的时候,可以用一个数值来代替数据中的所有空值nan。如下如所示 也可以通过字典来将指定的地方的空值改为我们想要设置的值。 ?调用函数dataSet.fillna(method='ffill'),这里我没有声明axis,则axis默认为0,即按照列进行处理,在这里空值nan将会由它所在的列的前一个不是空值的值来赋值给它。这里每一列空值的前一个值分别为1.0和5.0,则空值的值会等于他们所在列的这些值。如下图所示。 ?调用函数dataSet.fill(method='bfill',limit=1),这里的method等于bfill,这里我没有声明axis,则axis默认为0,即按照列进行处理,在这里空值nan将会由它所在的列的后一个不是空值的值来赋值给它,并且我们限制,每一列最多只能填充一个空值,剩下的我们不管。如下图所示。 ?关于inplace这个函数我们这里就不演示了,和上面的dropna函数的用法一致,默认是在数据的副本上进行的修改,原数据不会受改变。 总结:以上就是关于这两个函数的用法,在处理数据时,如果想要处理空值的话,这两个函数还是很有用的,能够得到我们想要的没有空值的数据。 编写不易,给个赞鼓励一下吧,转载请注明出处,每一个字都是纯手敲出来的。 如果问题,欢迎交流哈。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 1:48:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |