1 缺失值的处理

1.1 常规缺失值的处理

np.nan,NaN,None,NaT(时间数据类型的缺失值)等

df.isnull()

1.判断每一个df中的数据是否为缺失值,是则返回True,否则返回False
2.可以利用True为1,False为0的特性,sum()即为缺失值数量
df.notnull()

判断每个df中的值是否不为缺失值,是不为缺失值返回True,不是不为缺失值则返回False
df.dropna() 1.删除缺失值,可以指定axis来控制删除出现缺失值的行或者列 2.使用dropna( )中的参数how设置删除行列标准

  • how=‘all’:只有当该列(或行)全为缺失值时,才删除该列(或行)
  • how=‘any’:只要该列(或行)中有一个缺失值,就会将该列(或行)删除掉 默认
    df.fillna(999)

fillna填充缺失值

平均数填充:df.fillna(df.字段名(列名).mean()) 使用某一字段(列)的平均数填充
众数填充:df.fillna(df.字段名(列名).mode()[0]) 使用某一字段(列)的第一个众数填充
中位数填充:df.fillna(df.字段名(列名).median()) 使用某一字段(列)的中位数填充
上下文填充:df.fillna(method=‘ffill’) 使用上文填充(forwardfill),使用下文填充(backfill/bfill)
df.fillna(df.mean()) 使用各个字段(列)对应的均值填充(众数/中位数等同理)

df.interpolate()

使用线性差值填充,可以通过设置method参数来改变方式

1.2 其他缺失值的处理

实际工作中,某些异常值我们也会当做缺失值来处理。 例如,在我们的患者信息中,年龄字段出现了大约120岁的值,我们就可以认为这是一个异常值。

再比如,我们都知道性别分为男性(male)和女性(female),在记录用户性别的时候,对于未知的用户性别都记为了 “unknown”,很明显,我们也可以认为“unknown”是缺失值。

此外,有的时候会出现空白字符串,这些也可以认为是缺失值。

对于上面的这种情况,我们可以使用 replace 方法来替换缺失值。

  • df.replace(’’,np.nan) 使用np.nan替换是’'的数据

2 重复值的处理

df.duplicated() 按行进行检验,第一次出现返回False,不是第一次返回True
df.drop_duplicates()

  • subset
    考虑哪些列来标识重复项
  • keep
    • “first”:保留第一个重复项,其余删除。
    • “last”:保留最后一个重复项,其余删除。
    • False:删除所有重复项。

3 异常值的处理¶

散点图,箱线图(数据百分位数),算法

3.1可以通过箱线图来查找异常值

箱线图所表示的各个数值的含义:线条右下到上分别表示。
最小值、第一四分位数、中位数、第三四分位数和最大值
第一四分位数(Q1),又称“较小四分位数”或“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字;
第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字;
第三四分位数(Q3),又称“较大四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字;
第三四分位数与第一四分位数的差距又称四分位间距(InterQuartile Range,IQR)。

3.2 检测到了异常值,我们需要对其进行一定的处理。而一般异常值的处理方法可大致分为以下几种:

删除含有异常值的记录:直接将含有异常值的记录删除;
视为缺失值:将异常值视为缺失值,利用缺失值处理的方法进行处理;
平均值修正:可用前后两个观测值的平均值修正该异常值;
不处理:如果异常值具有实际价值,直接在具有异常值的数据集上进行数据挖掘;

->内容来自与我的老师,自己整理学习用!!!

Python中数据清洗缺失值,重复值和异常值的处理相关推荐

  1. python实现数据清洗(重复值+缺失值+异常值处理)

    实现功能: python实现数据清洗,对重复记录.缺失值.异常值进行检测,并对其进行处理. 实现代码: # 导入需要的库 import numpy as np import pandas as pdd ...

  2. 在Python中没有测试[重复]

    本文翻译自:not None test in Python [duplicate] This question already has an answer here: 这个问题在这里已有答案: Pyt ...

  3. 【Python】图解Pandas重复值处理

    公众号:尤而小屋 作者:Peter 编辑:Peter 今天带来的文章是关于Pandas中重复值处理.Pandas中处理重复值主要使用的是两个函数: duplicated():判断是否有重复值 drop ...

  4. vba 提取 json某个值_Excel中提取不重复值的方法汇总(5种基础+VBA+1个自定义函数)...

    各位朋友,你们好, 今天和你们分享Excel中提取不重复值的几种方法,着重介绍[5种]基础操作方法,另外附送一个VBA去重代码,拿去就可以直接使用. 一.基础操作方法 1.数据工具直接去重(见下图) ...

  5. python中布尔型的值_在python中对于bool布尔值的取反操作

    背景 根据公司业务的需求,需要做一个对于mysql数据库的大批量更新.脚本嘛也是干干单单.使用了redis的队列做缓存,可以异步并发的多任务进行更新. 有点难受的地方在于,请求访问时,因为一些网速,速 ...

  6. js检测数组对象中是否有重复值

    判断数组对象里的某个值是否都是同一个值 isRepeat=(arr)=> {var hash = {};for(let i=0;i<arr.length;i++){if (!hash[ar ...

  7. 不显示参数名_第51p,万能参数与返回值,Python中函数的返回值

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第51篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(四)====>函数的参数与返回值(下篇). ...

  8. ArrayList去除集合中字符串的重复值

    /* * 需求:ArrayList去除集合中字符串的重复值 * * 分析: * 1.创建一个集合对象 * 2.添加多个字符串元素 * 3.创建一个新的集合 * 4.拿旧集合中的元素到新集合中去找 * ...

  9. stream筛选出集合中对象属性重复值

    stream筛选出集合中对象属性重复值 字符串集合筛选 List<String> strings = Arrays.asList("a", "bb" ...

最新文章

  1. Jürgen Schmidhuber发文纪念10年前的研究,网友:转折点非AlexNet?
  2. Python访问MySQL数据库
  3. 【LeetCode每周算法】零钱兑换
  4. java 二维数组
  5. 服务器性能发挥,浪潮服务器发挥性能优势,算力“焦虑”问题被解决
  6. 如何使用ssh命令行连接到小米手机
  7. 使用UniBeast安装Hackintosh(黑苹果)
  8. python大数据分析入门实例-记一次小机器的 Python 大数据分析
  9. java根据出生年月计算年龄
  10. 高质量通信gRPC入门,有了它,谁还用Socket
  11. 基于JSF框架的在线棋牌游戏平台
  12. CISP证书对个人求职有帮助吗?
  13. STM32MP157基于Yocto构建Qt镜像和SDK工具链
  14. Vs2013未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包 解决方案
  15. 投资效率模型两个版本(含stata代码以及计算参考文献)
  16. 数学之美系列二十四 -- 谈谈动态规划与如何设计动态规划算法
  17. Java中long类型直接赋值大数字的问题
  18. 变速外挂案例及原理分析
  19. 【ParaView教程】2.11 时间
  20. c语言随机生成凸多边形源代码,求能够包含随机产生的点的边数最少的凸多边形...

热门文章

  1. 案例操作步骤演示ppt2013取色器在哪以及如何使用
  2. 消防知识线上答题活动小程序复盘
  3. 一文搞懂Python文件读写
  4. 学3D建模的快速方法【快捷键】
  5. matlab数学建模作用,matlab数学建模基础
  6. php面向对象的基础题
  7. 英灵神殿修改服务器名字吗,《Valheim英灵神殿》服务器彩色名称设置教程及常见服务器问题讲解...
  8. 09_方法重写丶多态丶抽象类
  9. Canvas 初试 先画个萌萌的五角星
  10. python实现视频换脸_Python实现AI换脸功能