python数据预处理之缺失值的各种填补方式

2023-11-10

如果你觉得文字看着枯燥,可以看配套讲解视频:讲解视频

对于数据挖掘的缺失值的处理,应该是在数据预处理阶段应该首先完成的事,缺失值的处理一般情况下有三种方式:

(1)删掉缺失值数据

(2)不对其进行处理

(3)利用插补法对数据进行补充

第一种方式是极为不可取的,如果你的样本数够多,删掉数据较少,这种情况下还是可取的,但是,如果你的数据本身就比较少,而且还删除数据,这样会导致大量的资源浪费,将丢弃了大量隐藏在这些记录中的信息.利用插补法对数据进行补充,是极为推荐的一个方式.

常见的插补法有以下几种:

1.用固定值插补

 #输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna('填补的数据')
 #输出到指定文件
data.to_excel(outputfile)   

 2.用均值插补

 #输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].mean())
 #输出到指定文件
data.to_excel(outputfile) 

 3.用众数插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].mode()[0])
 #输出到指定文件
data.to_excel(outputfile) 

  这里强调一下,看了很多其他的博客,在用众数填充时,都是直接data['空缺值所在列名'].mode(),我尝试了很多遍,发现一直填充不进去,后来查阅资料才发现pandas返回的是一个series(因为众数不止一个),而不像median,mean这些返回特定一个值,所以必须在后面加上下标值【0】,才能进行填充(必须加下标值,必须加下标值,必须加下标值,重要的话说三遍)

 4.用中位数插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(data['空缺值所在列名'].median())
 #输出到指定文件
data.to_excel(outputfile) 

 5.用上下数据插补

   用前一个数据填补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(method='pad')
 #输出到指定文件
data.to_excel(outputfile) 

  用下一个数据填补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].fillna(method='bfill')
 #输出到指定文件
data.to_excel(outputfile) 

 6.用插值法插补

#输出文件名
outputfile = "data.xls" 
 #读入文件
catering_sale = "catering_sale.xls" 
 #填补数据
data['空缺值所在列名'] =  data['空缺值所在列名'].interpolate()
 #输出到指定文件
data.to_excel(outputfile) 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python数据预处理之缺失值的各种填补方式 的相关文章

  • 在 Python 中对数据进行求和

    Given that the fitting function is of type 我打算将这样的函数拟合到我拥有的实验数据 x y f x 中 但后来我有一些疑问 当涉及求和时 如何定义拟合函数 一旦定义了函数 即def func re
  • 带括号的上下文管理器

    我试图了解新的新内容带括号的上下文管理器Python 3 10 中的功能 新功能中的顶部项目here https docs python org 3 10 whatsnew 3 10 html 我的测试示例是尝试编写 with open f
  • Pip install 导致此错误“ cl.exe' failed with exit code 2 ”

    我已经阅读了有关此错误的所有其他问题 但令人沮丧的是 没有一个给出有效的解决方案 如果我跑pip install sentencepiece在命令行中 它给出了以下输出 src sentencepiece sentencepiece wra
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 使用信号时出现 django TransactionManagementError

    我有一个与 django 的用户和 UserInfo 一对一的字段 我想订阅用户模型上的 post save 回调函数 以便我也可以保存 UserInfo receiver post save sender User def saveUse
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • 有条件填写 pandas 数据框

    我有一个数据框df列中包含浮点值A 我想添加另一列B这样 B 0 A 0 for i gt 0 B i if np isnan A i then A i else Step3 B i if abs B i 1 A i B i 1 lt 0
  • 绘制“plot”而不是“scatter”时,图例选择会中断

    再会 这个问题是后续问题为什么图例选取仅适用于 ax twinx 而不适用于 ax https stackoverflow com q 60167378 9282844 下面提供的最小代码分别绘制了两条曲线ax1 and ax2 ax1 t
  • 可移植的非关系数据库

    我想尝试 尝试非关系数据库 最好的解决方案是 便携式 这意味着它不需要安装 理想情况下 只需将目录复制粘贴到某个地方即可使其工作 我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具 可从 python 访问 适用于 Windows
  • 使用 Python 的文本中的词频但忽略停用词

    这给了我文本中单词的频率 fullWords re findall r w allText d defaultdict int for word in fullWords d word 1 finalFreq sorted d iterit
  • Selenium:等到 WebElement 中的文本发生变化

    我在用着selenium使用Python 2 7 从网页上的搜索框检索内容 搜索框动态检索结果并在框本身中显示结果 from selenium import webdriver from selenium webdriver common
  • 向 Python 2.6 添加 SSL 支持

    我尝试使用sslPython 2 6 中的模块 但我被告知它不可用 安装OpenSSL后 我重新编译2 6 但问题仍然存在 有什么建议么 您安装了 OpenSSL 开发库吗 我必须安装openssl devel例如 在 CentOS 上 在
  • 如何使用python读取最后一行的特定位置

    我有一个太大的 txt 文件 并且有几行类似的行 如下所示 字1 字2 字3 字4 553 75 我对位置 4 值 感兴趣 即最后一行 553 75 我的文件文本 word1 word2 word3 word4 553 20 word1 w
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 使用python中的mysql连接器正确从mysql数据库获取blob

    当执行以下代码时 import mysql connector connection mysql connector connect connection params here cursor connection cursor curso
  • python中打印字符串的长度

    有没有什么方法可以找到 即使是最好的猜测 Python中字符串的 打印 长度 例如 potaa bto 是 8 个字符len但 tty 上只打印 6 个字符宽 预期用途 s potato x1b 01 32mpotato x1b 0 0mp
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t
  • Selenium Python 使用代理运行浏览器[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个非常简单的脚本 该脚本从 txt 文件获取代理 不需要身份验证 并用它打开浏览器 然后沿着代理列表循环此操作一定次数 我确实知道如何打开 txt 文件并使用它 我的主要问题是让代理正常工作 我见

随机推荐

  • DVWA通关教程

    1 首先先把难度调为low 进行brute force 首先审计代码
  • java中Long类型数据必须转化为int才能正确比较

    java中如果有Long类型数据需要比较判断时 必须转化为int才能正确比较 例如 Long long1 Long parseLong 1012 Long long2 Long parseLong 1012 if long1 long2 结
  • HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to baobab.kaiyanapp.com not

    问题 HTTP FAILED java net UnknownServiceException CLEARTEXT communication to baobab kaiyanapp com not permitted by network
  • 配置PDB符号文件服务

    配置PDB符号文件服务器的想法 刚入职的小木 前不久刚刚解决了一次crash问题 Windbg分析程序崩溃实践 小木没有松懈 继续进行项目代码和Debug技术的学习 同时也思考了一个问题 产品每隔一段时间就会发布新的版本 当出现Crash问
  • 利用Python实现一组数的最大公约数

    我先用求三个整数的最大公约数为例 首先利用for循环来进行判断这三个整数可以被那些数整除 代码如下 x y z eval input 请输入三个整数 用逗号隔开 ma max x y z ls for i in range 2 ma a x
  • 【MQTT】MQTT协议学习

    文章目录 MQTT协议 简述 特点 MQTT消息的QoS 服务质量 MQTT支持三种QoS等级 协议实现方式 MQTT协议数据包 控制报文 结构 MQTT固定头 MQTT数据包类型 标识位 剩余长度 Remaining Length MQT
  • Sqlserver 监控使用磁盘空间情况

    最近遇到一个小问题 为了保存以往的一些数据 间了大量临时表 导致SQLserver 数据增长过快 不得不想个办法监控磁盘空间使用情况 网上一般有几种办法 一是使用 dm os volume stats函数 缺点是 无法获取非数据库所在的磁盘
  • Service Bus Namespace 和 Access Control

    Service Bus Namespace 和 Access Control Service Bus Namespace简述 https yourapp servicebus windows net foo bar baz 就是一个name
  • 【必看】时序逻辑仿真成组合逻辑?你知道原因吗?

    对于初学者 一般会遇到这种情况 明明写的时序逻辑 结果仿真结果却是组合逻辑 然后看遍设计代码 始终找不到原因 交流群 知乎这种问题随处可见 但不要怀疑软件问题 modelsim这些专用软件基本不会遇见软件自身问题 原因其实很简单 因为多数人
  • 常用内存数据库介绍(四)

    4 5 H2 Database h2是Thomas Mueller提供的一个开源的 纯java实现的关系数据库 官方网站 http www h2database com html main html 它的主要特性是 非常速的数据库引擎 开源
  • 《算法图解》总结第 7 章:狄克斯特拉算法

    仅用于记录学习 欢迎批评指正 大神勿喷 系列文章目录 算法图解 总结第 1 章 二分查找 大O表示法 算法图解 总结第 2 章 数组和链表 选择排序 算法图解 总结第 3 章 while循环 递归 栈 算法图解 总结第 4 章 分而治之 快
  • mac safari无法打开网页_Safari浏览器无法打开网页,因为您的iphone尚未接入互联网...

    原因如下 1 移动数据没打开 如果苹果手机出现游览器无法打开网页 我们专首先要查看手机上面网络属数据是否开启 如果忘记开启网络数据的话 那么没有网络也就无法打开访问网页 这个时候 打开系统设置将蜂窝移动数据按钮打开 即可解决这个问题 2 检
  • FastCGI sent in stderr: “Primary script unknown“ while reading response header from upstream问题解决

    error 1439 1439 5 FastCGI sent in stderr Primary script unknown while reading response header from upstream php对接nginx的配
  • wifi 概念

    wifi 的一些概念 转载 http blog csdn net eager7 article details 8117600 python view plain copy 1 什么是WIFI Wi Fi 原先是无线保真的缩写 Wi Fi
  • html中哪些是行内元素,html行内元素有哪些

    html行内元素有 a b u span img input strong select sub sup label em button textarea tt var samp br cite code font strike等等 本教程
  • layui文件上传后台(带自定参数)

    记录layui文件上传方法 前端页面直接看layui文件上传相关文档就行 主要是记录后端Java接收上传流并保存的方法 layui文档 https www layui com doc modules upload html 因为该方法使用M
  • [BSidesSF2019]goodluks

    BSidesSF2019 goodluks 考点 题解过程 flag 考点 1 EFF 骰子密码 2 Linux删除的文件恢复 3 LUKS加密 题解过程 开局给了一张图片和一个img的文件 首先使用查看镜像的文件内容 是一个MBR的启动项
  • matlab非线性规划

    1 非线性规划matlab函数 非线性规划函数的约束函数和目标函数至少有一个是非线性函数 而对比于线性规划的区别也就一眼识别了 MATLAB中用于求解非线性规划的函数为fmincon 其调用格式如下 x fmincon f x0 A b x
  • java调用webservice接口 几种方法

    webservice的 发布一般都是使用WSDL web service descriptive language 文件的样式来发布的 在WSDL文件里面 包含这个webservice暴露在外面可供使用的接口 今天搜索到了非常好的 webs
  • python数据预处理之缺失值的各种填补方式

    如果你觉得文字看着枯燥 可以看配套讲解视频 讲解视频 对于数据挖掘的缺失值的处理 应该是在数据预处理阶段应该首先完成的事 缺失值的处理一般情况下有三种方式 1 删掉缺失值数据 2 不对其进行处理 3 利用插补法对数据进行补充 第一种方式是极