一、了解缺失值

  • 通常使用 NA('not available')来代指缺失值
  • 在Pandas的数据结构中,缺失值使用 NaN('Not a Number')进行标识

除了汇总统计方法,还可以使用isnull()来对数据中缺失的样本占比、特征大致的缺失情况进行了解。

  1. >>> df =pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']),
  2. ... 'two':pd.Series([1,3,2,7],index=['a','b','c','d']),
  3. ... 'three':pd.Series([3,8,3],index=['d','a','c'])})
  4. >>> df
  5. one two three
  6. a 1.0 1 8.0
  7. b 2.0 3 NaN
  8. c 3.0 2 3.0
  9. d NaN 7 3.0
  10.  
  11. #缺失值的数量分析
  12. >>> df.isnull()
  13. one two three
  14. a False False False
  15. b False False True
  16. c False False False
  17. d True False False
  18.  
  19. >>> df.isnull().sum()
  20. one 1
  21. two 0
  22. three 1
  23. dtype: int64

二、缺失值填充

  使用fillna()方法进行缺失值填补

填充方式分为以下几种:

(1)使用同一个值填补所有的缺失值

  1. >>> df.fillna('用我填充')
  2. one two three
  3. a 1 1 8
  4. b 2 3 用我填充
  5. c 3 2 3
  6. d 用我填充 7 3

(2)向前填充、向后填充--->通过设置参数method参数来实现

method参数 说明
ffill或pad 向前填充值
bfill或backfill 向后填充值
  1. #向前填充
  2. >>> df.fillna(method='pad')
  3. one two three
  4. a 1.0 1 8.0
  5. b 2.0 3 8.0
  6. c 3.0 2 3.0
  7. d 3.0 7 3.0
  8.  
  9. #向后填充
  10. >>> df.fillna(method='bfill')
  11. one two three
  12. a 1.0 1 8.0
  13. b 2.0 3 3.0
  14. c 3.0 2 3.0
  15. d NaN 7 3.0

(3)对不同列的缺失值使用不同的值进行填补

  可以使用列表的方式,如下:

  1. >>> df.fillna({'one':1,'three':3})
  2. one two three
  3. a 1.0 1 8.0
  4. b 2.0 3 3.0
  5. c 3.0 2 3.0
  6. d 1.0 7 3

(4)使用一个Pandas的自动对齐功能进行填补

   这也是最常使用的一种方式

  1. >>> df.fillna(df.mean())
  2. one two three
  3. a 1.0 1 8.000000
  4. b 2.0 3 4.666667
  5. c 3.0 2 3.000000
  6. d 2.0 7 3.000000

  

6-Pandas之缺失值处理的更多相关文章

  1. Python Pandas找到缺失值的位置

    python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个缺失数据,缺 ...

  2. pandas判断缺失值的办法

    参考这篇文章: https://blog.csdn.net/u012387178/article/details/52571725 python pandas判断缺失值一般采用 isnull(),然而 ...

  3. Pandas对缺失值的处理

    Pandas使用这些函数处理缺失值: isnull和notnull:检测是否是空值,可用于df和series dropna:丢弃.删除缺失值 axis : 删除行还是列,{0 or 'index', ...

  4. pandas 处理缺失值(连续值取平均,离散值fillna"<unk>")

    # 2.1处理缺失值,连续值用均值填充 continuous_fillna_number = [] for i in train_null_ix: if(i in continuous_ix): me ...

  5. python-数据描述与分析2(利用Pandas处理数据 缺失值的处理 数据库的使用)

    2.利用Pandas处理数据2.1 汇总计算当我们知道如何加载数据后,接下来就是如何处理数据,虽然之前的赋值计算也是一种计算,但是如果Pandas的作用就停留在此,那我们也许只是看到了它的冰山一角,它 ...

  6. Python数据分析之pandas学习

    Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...

  7. Python pandas 0.19.1 Intro to Data Structures 数据结构介绍 文档翻译

    官方文档链接http://pandas.pydata.org/pandas-docs/stable/dsintro.html 数据结构介绍 我们将以一个快速的.非全面的pandas的基础数据结构概述来 ...

  8. python 数据分析--pandas

    接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利用pandas的DataFrames进行统计分析 ...

  9. Pandas 常见的基本方法

    说明:文章所有内容均截选自实验楼教程[Pandas 使用教程],想要查看教程完整内容,点击教程即可~ 前言: Pandas 是非常著名的开源数据处理工具,我们可以通过它对数据集进行快速读取.转换.过滤 ...

  10. pandas常用

    #python中的pandas库主要有DataFrame和Series类(面向对象的的语言更愿意叫类) DataFrame也就是#数据框(主要是借鉴R里面的data.frame),Series也就是序 ...

随机推荐

  1. 精简CSS代码,提高代码的可读性和加载速度

    前言 提高网站整体加载速度的一个重要手段就是提高代码文件的网络传输速度.之前提到过,所有的代码文件都应该是经过压缩了的,这可提高网络传输速度,提高性能.除了压缩代码之外,精简代码也是一种减小代码文件大 ...

  2. vx小程序(1)

    一.程序配置 app.json 1. pages字段——用于描述当前小程序的页面路径. 2.window字段——定义小程序所有页面的顶部背景颜色,文字颜色等. 注意:可以在pages/logs目录下的 ...

  3. ShuffleNetV1/V2简述 | 轻量级网络

    ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络可以尽情地使用分组卷积来加速,而ShuffleNetV2则推倒V1的大 ...

  4. MySQL 树形索引结构 B树 B+树

    MySQL 树形索引结构 B树 B+树   如何评估适合索引的数据结构 索引的本质是一种数据结构 内存只是临时存储,容量有限且容易丢失数据.因此我们需要将数据放在硬盘上. 在硬盘上进行查询时也就产生了 ...

  5. Uni-app页面路由区分注意事项

    总结Tips: (1)navigateTo,redirectTo 只能打开非 tabBar页面 (2)switchTab只能打开 TabBar 页面 (3)reLaunch可以打开任意界面 (4)页面 ...

  6. git clone下载速度很慢的解决方法

    一直用git clone从github上下载源码学习,但是有时候git clone速度好慢,只有几Kb的速度,按这个速度下载安卓源码的话估计要下一年. 然后我再网上找各种教程,试过通过vps下载git ...

  7. SpringBoot系列之前后端接口安全技术JWT

    @ 目录 1. 什么是JWT? 2. JWT令牌结构怎么样? 2.1 标头(Header) 2.2 有效载荷(Playload) 2.3 签名(Signature) 3. JWT原理简单介绍 4. J ...

  8. 为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?

    避免跨域(img 天然支持跨域) 利用空白gif或1x1 px的img是互联网广告或网站监测方面常用的手段,简单.安全.相比PNG/JPG体积小,1px 透明图,对网页内容的影响几乎没有影响,这种请求 ...

  9. order by 注入姿势

    order by 注入原理 其实orde by 注入也是sql注入的一种,原理都一样就是mysql语法的区别,order by是用来排序的语法. sql-lab讲解 判断方法 1.通过做运算来判断如: ...

  10. SQLAlchemy(四):SQLAlchemy查询高级

    目录 SQLAlchemy04 /SQLAlchemy查询高级 1.排序 2.limit.offset和切片操作 3.懒加载 4.group_by 5.having 6.join 7.subquery ...