Pandas数据处理1、DataFrame删除NaN空值(dropna各种属性值控制超全)
Pandas数据处理——渐进式学习
目录
前言
这个女娃娃是否有一种初恋的感觉呢,但是她很明显不是一个真正意义存在的图片,我们需要很复杂的推算以及各种炼丹模型生成的AI图片,我自己认为难度系数很高,我仅仅用了64个文字形容词就生成了她,很有初恋的感觉,符合审美观,对于计算机来说她是一组数字,可是这个数字是怎么推断出来的就是很复杂了,我们在模型训练中可以看到基本上到处都存在着Pandas处理,在最基础的OpenCV中也会有很多的Pandas处理,所以我OpenCV写到一般就开始写这个专栏了,因为我发现没有Pandas处理基本上想好好的操作图片数组真的是相当的麻烦,可以在很多AI大佬的文章中发现都有这个Pandas文章,每个人的写法都不同,但是都是适合自己理解的方案,我是用于教学的,故而我相信我的文章更适合新晋的程序员们学习,期望能节约大家的事件从而更好的将精力放到真正去实现某种功能上去。本专栏会更很多,只要我测试出新的用法就会添加,持续更新迭代,可以当做【Pandas字典】来使用,期待您的三连支持与帮助。
环境
系统环境:win11
Python版本:python3.9
编译工具:PyCharm Community Edition 2022.3.1
Numpy版本:1.19.5
Pandas版本:1.4.4
DataFrame删除NaN空值
在数据操作的时候我们经常会见到NaN空值的情况,很耽误我们的数据清理,那我们使用dropna函数删除DataFrame中的空值。
实际上能处理的有3个函数,我们用dropna来删除这帮空值。
dropna函数参数
axis:操作的轴向,X/Y
how:两个参数any与all,all代表整个行都是空才会删除
thresh:某行的空值超过这个阈值才会删除
subset:处理空值时,只考虑给定的列。需要提供列名数组
inplace:值是True和False,True是在原DataFrame上修改,False则创建新副本
测试数据
可以看到有好多空值:
删除所有有空的行
axis属性值
这里的dropna只填写了【axis】一个参数,其中0的值代表行,1的值代表列。
axis=0效果测试:
axis=1效果测试:
很明显我们能看的出来,只要是axis=0有空的行就删除了,axis=1有空的列就删除了。
how属性值
any效果:
all效果:由于没有都是NaN的行,故而都没有删除。
thres属性值
有2个nan就会删除行
subset属性值
我这里清除的是[name,age]两列只要有NaN的值就会删除行
实际效果:
inplace是否复制副本
inplace=False,不复制副本,我们不二次赋值。
复制副本,但是未重新赋值效果
不复制副本
可以很直接的看到效果。
fillna测试
value:用于填充的空值的值。
method: {'backfill', 'bfill', 'pad', 'ffill', None}, default None。定义了填充空值的方法,
pad / ffill表示用前面行/列的值,填充当前行/列的空值,
backfill / bfill表示用后面行/列的值,填充当前行/列的空值。
axis:轴。0或'index',表示按行删除;1或'columns',表示按列删除。
inplace:是否原地替换。布尔值,默认为False。如果为True,则在原DataFrame上进行操 作,返回值为None。
limit:int,default None。如果method被指定,对于连续的空值,这段连续区域,最多填充前,limit 个空值(如果存在多段连续区域,每段最多填充前 limit 个空值)。如果method未被指定, 在该axis下,最多填充前 limit 个空值(不论空值连续区间是否间断)downcast:dict, default is None,字典中的项为,为类型向下转换规则。
示例代码:替换成10
实际效果:
总结
我们很多的时候在处理SQL的时候需要去掉空值,其实和这个操作是一样的,空值是很多的时候没有太大意义,数据清洗的时候就会用到这块了。
- 点赞
- 收藏
- 关注作者
评论(0)