问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pandas系列之缺失值的处理

发布网友 发布时间:2024-10-01 23:58

我来回答

1个回答

热心网友 时间:2024-10-27 10:07

缺失值是由于某些原因导致部分数据为空。对于缺失值一般有2种处理方式,要么删除,要么填充(用某个值代替缺失值)。缺失值一般分2种,一种是某一列的数据缺失。另一种是整行数据都缺失,即一个空行。

本文所用到的Excel表格内容如下:

1.缺失值查看1.1 先打印一下数据结构看一下整体情形importpandasaspddf=pd.read_excel(r'C:\Users\admin\Desktop\data_test.xlsx')print(df)

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.0

从结果来看,每一列均有缺失值。这里特别注意,时间日期类型的数据缺失值用NaT表示,其他类型的都用NaN来表示。千万不要笼统的认为缺失值都是用NaN来表示

1.2 info():查看缺失值的情形df=pd.read_excel(r'C:\Users\admin\Desktop\data_test.xlsx')print(df.info())

result:

<class'pandas.core.frame.DataFrame'>RangeIndex:12entries,0to11Datacolumns(total5columns):#ColumnNon-NullCountDtype----------------------------0区域11non-nullobject1省份8non-nullobject2城市11non-nullobject3时间7non-nulldatetime64[ns]4指标9non-nullfloat64dtypes:datetime64[ns](1),float64(1),object(3)memoryusage:608.0+bytesNone

从结果来看,省份这一列是9 non-null。说明省份这一列有4个null值。同理,时间这一列有4个缺失值,指标这一列有2个缺失值,城市这一列有1个缺失值,区域这一列有1个缺失值

2.缺失值的判断

isnull():判断具体的某个值是否是缺失值,如果是则返回True,反之则为False

df=pd.read_excel(r'C:\Users\admin\Desktop\data_test.xlsx')print(df.isnull())

result:

区域省份城市时间指标0FalseFalseFalseFalseFalse1FalseTrueFalseTrueFalse2FalseFalseFalseFalseTrue3FalseFalseFalseFalseFalse4FalseFalseFalseTrueFalse5FalseFalseFalseFalseFalse6TrueTrueTrueTrueTrue7FalseTrueFalseFalseFalse8FalseFalseFalseTrueFalse9FalseTrueFalseFalseTrue10FalseFalseFalseTrueFalse11FalseFalseFalseFalseFalse3.删除缺失值

dropna():删除缺失值

3.1 严格删除所有所有有缺失值的行df=pd.read_excel(r'C:\Users\admin\Desktop\data_test.xlsx')print(df.dropna())

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.03华北北京北京2021-05-1345.05东北黑龙江哈尔滨2019-09-1142.011华中湖北荆州2019-09-1732.0

从结果来看,dropna()方法默认会删除含有缺失值的行,只要这一行有一个字段缺失,就会被删除。所以最终只保留了4条完整的数据记录

3.2 只删除空白行df=pd.read_excel(r'C:\Users\admin\Desktop\data_test.xlsx')print(df.dropna(how='all'))

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.07华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.0

how='all'代表只删除所有字段均为缺失值的行,即只删除空白行。所以保留了11条记录。只删除了第6行这个空白行。

4.缺失值补充

一般有用0填充,用平均值填充,用众数填充(大多数时候用这个),向前填充(用缺失值的上一行对应字段的值填充,比如D3单元格缺失,那么就用D2单元格的值填充)、向后填充(与向前填充对应)等方式。

4.1填充所有缺失值

fillna():缺失值,参数代表要填充的内容。

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.00

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.01

从结果来看,该方法默认情形下会对所有缺失值进行填充

4.2 填充指定单列区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.02

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.034.3 填充多列4.3.1 指定多列填充一样的内容区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.04

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.054.3.2 指定多列填充不一样的内容区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.06

result:

区域省份城市时间指标0东北辽宁大连2019-09-0612.01西北NaN西安NaT87.02华南广东深圳2019-09-08NaN3华北北京北京2021-05-1345.04华中湖北武汉NaT21.05东北黑龙江哈尔滨2019-09-1142.06NaNNaNNaNNaTNaN7华南NaN广州2019-09-1334.08华北河北石家庄NaT56.09华中NaN益阳2019-09-15NaN10东北辽宁鞍山NaT32.011华中湖北荆州2019-09-1732.07
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
防静电手腕带简介 QQ管家的金币换礼品是骗人的吧,让输入验证码的时候礼品已经没了._百 ... 安全金币换礼包是真的嘛 电脑管家礼包是骗局? 管家里面用金币兑换实物,为什么我每次兑换都提示已兑换 电脑管家金币兑换礼包是正的吗? 中译英: 这件衬衫和你的裤子很配 我母亲今年79岁,九月份身体不适,B超和肝功检查,结果怀疑是有东西占位... 半永久眉毛二次补色后需要买修复剂吗 左边一个革,右边一个斥去掉点是什么字 pandas系列之数值删除 电脑文件夹字体变蓝是加密文件吗?如何恢复默认颜色? 电脑文件夹字体为何变蓝并如何恢复默认设置? 出现蓝色字体“安全模式”,按什么键进入系统? 吉象地板怎么样吉象地板官网报价 湖北吉象民安设备有限公司怎么样? 湖北吉象人造林制品有限公司企业简介 湖北吉象的湖北吉象简介 湖北吉象发展简史 cf卡是什么卡 2000年用什么聊天 民警调查后发现男子的驾照也已被吊销 男子坐副驾驶教10岁女儿开车_百度... 光雾山 桃源景区附近酒店有哪些 ...玩2个号目前我是DK,成就4千坐骑80多个了。开了CTM再玩个号,玩什么... 12号要开CTM了 目前我又两大热门职业!一个是亲儿子!还一个是DK! 真... CTM4.2PVP玩DK还是CJQ 魔兽CTM玩个QS还是DK?哪个好玩些 CTM,我该玩啥职业? 国服CTM4.1DK ...小提琴是怎样炼成的》怎么样?有什么好玩的地方? pandas系列之数据类型转换和异常值的处理 pandas系列之数值替换 有一张搞笑图片,里面是两个人的聊天记录,很长,两个人轮流发一个表情,好... pandas系列之按列选择数据 说说手机里最搞笑的图是哪一张吧? 好玩搞笑的说说带图片大全最新版 整人靠天份被整看缘分 蓝色配什么颜色搭配起来比较好看 3.6÷25的竖式计算 3.6÷16用竖式怎么计算 3.6÷1.5的列竖式计算公式 ...前一段还一直看安徽卫视,最近却没了 搜不到了 搜N遍了,求解 谢啦... ai怎么设置多边画花ai怎么画花纹多边形 美的KFR-72LW/BP2DY-H(4)保修信息 AI做这种梅花图形怎么做求大神ai怎么做梅花形状 ...精英想收快手有500万粉丝的女网红为徒弟,首先我要玩吃鸡很厉?_百度... 如果卖家发货后又申请仅退款,会怎么样 科目一考试中容易混淆的题目之停车场停车区 科目一考试中容易混淆的题目之不能停车的路段 科目一丨理论考试中容易混淆的交规知识 【健身大挑战】十种俯卧撑,看你能够做到第几个?