【Python特征工程系列】数值型数据缺失值处理方法总结(案例+源码)

news/2024/11/13 9:12:07/

这是我的第334篇原创文章。

一、引言

对于从事数据相关工作的小伙伴,面试的时候经常会被问到如何进行缺失值/异常值的处理,本文来梳理一下填补数值型缺失值的7种方法。

二、实现过程

准备数据

python">df = pd.read_csv('data.csv')
df.drop("id",axis=1,inplace=True)
print('数据:', df, sep='\n')

df:

图片

查看缺失值情况

整体确实情况:

python">print('数据缺失值情况:', df.isnull().sum(), sep='\n')

数值型数据缺失情况:

python">cat_cols = [col for col in df.columns if df[col].dtype == "object"] # 类别型变量名
num_cols = [col for col in df.columns if df[col].dtype != "object"] # 数值型变量名
print(cat_cols)
print(num_cols)
print('数值型数据缺失情况:', df[num_cols].isnull().sum(), sep='\n')

图片

2.1 均值填充

python">df[num_cols] = df[num_cols].fillna(df[num_cols].mean())

2.2 中位数填充

python">df[num_cols] = df[num_cols].fillna(df[num_cols].median())

2.3 众数填充

python">df[num_cols] = df[num_cols].fillna(df[num_cols].mode().iloc[0])

2.4 前后数据填充

python">df[num_cols] = df[num_cols].fillna(method='bfill')
python">df[num_cols] = df[num_cols].fillna(method='bfill')

2.5 自定义填充

2.6 interpolate()插值方法填充

python">df[num_cols] = df[num_cols].interpolate()

2.7 机器学习预测填充

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。


http://www.ppmy.cn/news/1504222.html

相关文章

fastDDS-gen编译

要编译 fastDDS-gen,你可以按照以下步骤进行: 克隆仓库: git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git cd Fast-DDS-Gen构建和安装: fastDDS-gen 使用 Gradle 进行构建。你可以使用以下命令来构建和安装&…

MSF回弹木马ubuntu测试

网站地址为192.168.104.128 web.php内容为&#xff1a; <?php eval($_POST[123]); ?>linux版本信息&#xff1a;20.04.1-Ubuntu nginx信息&#xff1a;nginx-1.21.6 php信息&#xff1a;PHP 7.3.33-19 php-fpm信息&#xff1a;/etc/php/7.3/fpm/php-fpm.conf 一、使用…

AUTOSAR实战教程 - 模式管理BswM与其他各模块的交互

近日驻厂某OEM,幸得大块的个人时间, 把BswM这一块的内容从ETAS/ISOLAR工具配置到代码实现做了一个全方位的CT. 2024,希望孜孜内卷的汽车人升职加薪!博主近期写的一首小诗,也一并送给大家,懂的都懂: 在看不到阳光的冬天/ 我染了风寒/ 白天点灯/ 晚上吃药/ 躺在被窝里才敢咳…

用的到linux-tomcat端口占用排查-Day5

前言&#xff1a; 最近使用tomcat搭建了一套测试环境的应用&#xff0c;整个搭建过程也很简单&#xff0c;就是将部署包上传至服务器☞解压☞启动tomcat服务器&#xff0c;当然服务器也是成功启动了&#xff0c;但是发现前端应用报404&#xff0c;具体如下图所示。 一、现象及思…

【Linux-WMware Tools安装失败“segmentation fault”解决方法】

VMware版本&#xff1a;17 Ubuntu版本: 22.04 安装常规办法&#xff0c;通过vmware安装Tool&#xff0c;安装显示报错&#xff1a;“segmentation fault”&#xff0c;查了下可能是tool和ubuntu版本不兼容导致的。解决办法&#xff1a;通过命令行逐次安装。 1、sudo apt insta…

nginx负载均衡、java、tomcat装包

一、nginx 七层负载均衡 1、七层负载均衡基础配置 2、负载均衡状态 [rootserver]# vim /usr/local/nginx/conf/nginx.confworker_processes 1;event {worker_connections 1024&#xff1b;}http { # 七层负载均衡支持http、ftp协议include mime.types;default_type app…

手把手教你入门vue+springboot开发(十一)--token详细解读

文章目录 前言一、后端代码解读二、前端代码解读总结前言 JWT是一种在web应用中广泛使用的令牌格式,用于在用户和服务器之间传递安全可靠的信息。JWT通常包含了用户的身份信息和一些其他的元数据,被用作身份验证和授权。因此,人们经常将JWT简称为令牌(token)。本篇我们结…

android 音频播放器,(二)SoundPool简介

1.SoundPool概述 SoundPool类管理和播放低延迟音频资源。SoundPool还管理一次渲染的音频流的数量&#xff0c;构造SoundPool对象时&#xff0c;maxStreams参数为从单个SoundPool播放的最大流数。 设置非零循环值&#xff0c;可以循环播放声音。值为-1声音永远循环&#xff0c;这…