Python缺失值处理实现
在数据处理相关工作中,读取的数据中常常会有缺失值的情况,为顺利进行后续的操作,需要首先对缺失值进行处理,处理的方式一般为删除或填充,Python中提供了专门的工具包,可以方便地进行实现。读取操作可以由pandas模块实现,通常直接读一个excel或csv文件,创建为DataFrame对象,模块中的dropna方法和fillna方法可以实现对缺失值的删除和填充。
现有下列数据文件,文件命名为testdata.xlsx,对它进行缺失值处理。

读取数据:
import pandas as pd
data = pd.read_excel("./testdata.xlsx")

易知数据中第4行第1列、第6行第2列、第2行第4列、第3行第4列是缺失的。
1.删除
对于缺失的地方,可以删除所在的行或所在的列。
(1).删除含空值的行,在dropna()中加参数axis=0.
data.dropna(axis=0,inplace=True)

(2).删除含空值的列,在dropna()中加参数axis=1.
data.dropna(axis=1,inplace=True)

2.填充
对于缺失的地方,也可以填入一个值使之不再空缺。通常填0、指定字符、中位数、均值、相邻值或拟合值。
(1).填充0
data.fillna(0,inplace=True)

(2) 填充指定字符
data.fillna('无',inplace=True)

(3) 填充整体的均值、中位数
均值(保留一位小数):
t = np.round(np.mean(data),1)
data.fillna(t,inplace=True)

中位数:
dnr = np.array(data)
dnr = dnr[~np.isnan(dnr)] # 非nan元素
t = np.median(dnr) # 整体中位数
data.fillna(t,inplace=True)

(4)填充所在列的均值、中位数
均值:
data.fillna(data.mean(),inplace=True)

中位数:
(奇数个元素取中间的,偶数个元素取中间两个的均值)
data.fillna(data.median(),inplace=True)

(5)填充相邻值
a. 填充列的前相邻值
data.fillna(method='ffill',axis=0,inplace=True)
或
data.ffill(axis=0,inplace=True)

b. 填充列的后相邻值
data.fillna(method='bfill',axis=0,inplace=True)
或
data.bfill(axis=0,inplace=True)

c. 填充行的前相邻值
data.fillna(method='ffill',axis=1,inplace=True)
或
data.ffill(axis=1,inplace=True)

d. 填充行的后相邻值
data.fillna(method='bfill',axis=1,inplace=True)
或
data.bfill(axis=1,inplace=True)

(6)按列填充指定内容
有时不同列空缺数据的填充需求是不一致的,此时可以按列进行填充。
a.填充某一列
对第4列空缺处填充列均值
mean_c4 = data['TitleC4'].mean()
data['TitleC4'].fillna(mean_c4, inplace=True)

对第4列空缺处填充前相邻值
data['TitleC4'].fillna(method='ffill',axis=0,inplace=True)
或
data['TitleC4'].ffill(axis=0,inplace=True)

b,用字典指定填充多列
fill_values = {'TitleC1':1111,'TitleC2':2222,'TitleC4':4444,'TitleC5':5555}
data.fillna(value=fill_values, inplace=True)

(7)填充拟合值(插值算法)
对于元素仅为数字的数据,缺失部分也可用插值算法填充,如线性插值、二次插值、三次插值、样条插值等。
data.interpolate(method='slinear',inplace=True) #线性插值
data.interpolate(method='quadratic',inplace=True) #二次插值
data.interpolate(method='cubic',inplace=True) #三次插值
参考:
1.https://www.python100.com/html/L1PK07477FUQ.html
2.https://www.python100.com/html/120094.html
3.https://www.python100.com/html/75400.html
4.https://blog.csdn.net/weixin_46277779/article/details/126224097
Python缺失值处理实现的更多相关文章
- python 缺失值处理(Imputation)
一.缺失值的处理方法 由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格.nans或者是其他的占位符.但是这样的数据集并不能被scikit - learn算法兼容,因为 ...
- python 缺失值的处理
- python 缺失值的向前填充
method='bfill'可实现按下方值填充
- python 缺失值处理
- R vs Python:构建data.frame、读取csv与统计描述
一.Python 数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构. 1.构建数据框 import pand ...
- Python做数据预处理
在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索性分析之后要先进行一系列的数据预处理步骤.因为拿到的原始数据存在不完整.不一致. ...
- python 连接 oracle 统计指定表格所有字段的缺失值数
python连接oracle -- qlalchemy import cx_Oracle as co import pandas as pd from sqlalchemy import crea ...
- Python Pandas找到缺失值的位置
python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个缺失数据,缺 ...
- python 特征缺失值填充
python数据预处理之缺失值简单处理:https://blog.csdn.net/Amy_mm/article/details/79799629 该博客总结比较详细,感谢博主. 我们在进行模型训练时 ...
- [Python] Pandas 对数据进行查找、替换、筛选、排序、重复值和缺失值处理
目录 1. 数据文件 2. 读数据 3. 查找数据 4. 替换数据 4.1 一对一替换 4.2 多对一替换 4.3 多对多替换 5. 插入数据 6. 删除数据 6.1 删除列 6.2 删除行 7. 处 ...
随机推荐
- SQL SERVER 数据库性能优化与管理从零基础到走两步系列(一)——性能计数器
前辈大佬资料: 使用性能监视器找出SQLServer硬件瓶颈 在网络上苦苦流浪了近十几个小时,从百度到谷歌,从CSDN到博客园,从知乎到微信读书,看了无数本滥竽充数的书,读了无数篇夹生的技术文章,快下 ...
- 力扣481(java&python)-神奇字符串(中等)
题目: 神奇字符串 s 仅由 '1' 和 '2' 组成,并需要遵守下面的规则: 神奇字符串 s 的神奇之处在于,串联字符串中 '1' 和 '2' 的连续出现次数可以生成该字符串.s 的前几个元素是 s ...
- Docker部署Node应用简单实践
简介: 本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简单的Node应用. 前言 本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简单的Node应用.本文假设 ...
- 5分钟入门Lindorm SearchIndex
简介:SearchIndex是Lindorm宽表的二级索引,主要用来帮助业务实现快速的检索分析.本篇文章介绍如何通过简单的SQL接口操作SearchIndex. 一.引言 云原生多模数据库Lindo ...
- 应对 Job 场景,Serverless 如何帮助企业便捷上云
简介:函数计算作为事件驱动的全托管计算服务,其执行模式天生就与这类 Job 场景非常契合,对上述痛点进行了全方面的支持,助力"任务"的无服务器上云. 作者:冯一博 任务(Jobs) ...
- PolarDB-X 2.0:使用一个透明的分布式数据库是一种什么体验
简介: 透明分布式,是PolarDB-X即将发布的能力,它能让应用在使用PolarDB-X的过程中,犹如使用单机数据库一般的体验.与传统的中间件类型的"分布式数据库"相比,有了透明 ...
- Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能
简介: 2021年7月,Quick BI公共云版本迭代新功能:重磅推出即席分析.模板市场,分析门槛再降低:推出企业微信无缝对接,移动端类目个性配置及管理提升多端能力:数据建模配置交互升级至拖拽模式提升 ...
- Apache Flink 在汽车之家的应用与实践
简介: 汽车之家如何基于 Flink 上线了 AutoStream 平台并持续打磨. 本文整理自汽车之家实时计算平台负责人邸星星在 Flink Forward Asia 2020 分享的议题< ...
- 排查指南 | 两个案例学会从埋点排查 iOS 离线包
简介: 首次打开离线包白屏以及报错"-1009"等该如何处理呢? 离线包原理 以一次启动离线包的流程为例,离线包的加载流程分为两种场景,第一种是离线包下载好的场景,流程如图1 ...
- [Go] 选择 Beego 的三个理由
1. 项目支持角度较其它框架考虑的多一些,比如:目录结构的简单约定,内置项目配置读取,内置bee脚手架,热重载特性 等. (实际这些 feature 都可以找到 golang 专精的组件引入起来,效果 ...