1. 处理缺失数据

    pandas 使用浮点值 NaN (Not a Number)表示浮点和非浮点数组中的缺失数据。它只是一个便于被检测出来的标记而已。

    In [168]: data = Series(['a','b',np.nan,'d'])In [169]: data
    Out[169]:
    0      a
    1      b
    2    NaN
    3      d
    dtype: objectIn [170]: data.isnull()
    Out[170]:
    0    False
    1    False
    2     True
    3    False
    dtype: bool
    

    Python 内置的 None 值也会被当做 NA 处理:

    In [171]: data[0] = NoneIn [172]: data.isnull()
    Out[172]:
    0     True
    1    False
    2     True
    3    False
    dtype: bool
    

  1. 滤除缺失数据

    对于 Series,dropna 返回一个仅含非空数据和索引值的 Series:

    In [173]: data
    Out[173]:
    0    None
    1       b
    2     NaN
    3       d
    dtype: objectIn [174]: data.dropna()
    Out[174]:
    1    b
    3    d
    dtype: object
    # 也可以通过布尔型索引达到这个目的
    In [175]: data[data.notnull()]
    Out[175]:
    1    b
    3    d
    dtype: object
    

    而对于 DataFrame 对象,稍微有点复杂,dropna 默认会丢弃任何含有缺失值的行:

    In [176]: data = DataFrame([[1,2,3],[1,np.nan,np.nan],...: [np.nan,np.nan,np.nan],[np.nan,4,5]])In [177]: cleaned = data.dropna()In [178]: data
    Out[178]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    2  NaN  NaN  NaN
    3  NaN  4.0  5.0In [179]: cleaned
    Out[179]: 0    1    2
    0  1.0  2.0  3.0# 传入 how='all' 将只丢弃全为 NA 的那些行
    In [181]: data.dropna(how='all')
    Out[181]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    3  NaN  4.0  5.0
    

    要丢弃列,需要传入 axis=1,表示在列上生效:

    In [183]: data[4] = np.nanIn [184]: data
    Out[184]: 0    1    2   4
    0  1.0  2.0  3.0 NaN
    1  1.0  NaN  NaN NaN
    2  NaN  NaN  NaN NaN
    3  NaN  4.0  5.0 NaNIn [185]: data.dropna(axis=1,how='all')
    Out[185]: 0    1    2
    0  1.0  2.0  3.0
    1  1.0  NaN  NaN
    2  NaN  NaN  NaN
    3  NaN  4.0  5.0
    

  2. 填充缺失数据

    要填充缺失的数据,主要使用 fillna 方法,通过调用 fillna(Number) 就会将缺失值替换为 Number 数值。

    In [186]: df
    Out[186]: one  two
    a  1.0  NaN
    b  2.0  3.0
    c  NaN  NaN
    d  0.0  2.0In [187]: df.fillna(100)
    Out[187]: one    two
    a    1.0  100.0
    b    2.0    3.0
    c  100.0  100.0
    d    0.0    2.0
    # fillna 默认会返回新对象,但是传入 inplace=True 会对原有对象进行就地修改
    In [188]: df.fillna(200,inplace=True)In [189]: df
    Out[189]: one    two
    a    1.0  200.0
    b    2.0    3.0
    c  200.0  200.0
    d    0.0    2.0
    

  1. 层次化索引

    P164​

Pandas 基础 (5) —— 处理缺失数据及层次化索引相关推荐

  1. 数据分析之pandas学习笔记(六)(层次化索引、重塑、轴向旋转、行列变换、合并表数据)

    数据分析之Pandas学习笔记(六)(层次化索引.重塑.轴向旋转.行列变换.合并表数据) level层次化索引 unstack()与stack()进行重塑,即:行列索引变换 swaplevel()交换 ...

  2. pandas基础操作大全之数据合并

    在pandas 基础操作大全之数据读取&清洗&分析中介绍了pandas常见的数据处理操作,现在继续对pandas常用的数据合并操作做下介绍,便于大家快速了解,也方便后续需要时快速查询. ...

  3. DataWhale组队-Pandas(下)缺失数据(打卡)

    1.缺失值概要 数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确,以下从缺失值产生的原因及影响扥方面展开分析. (1)缺失值产生的原因 1)有些信息暂时无法获取,或 ...

  4. python fillna,Pandas之Fillna填充缺失数据的方法

    约定: import pandas as pd import numpy as np from numpy import nan as NaN 填充缺失数据 fillna()是最主要的处理方式了. d ...

  5. 数据科学包——pandas基础(处理丢失数据、统计、合并、分组)

    文章目录 一.处理丢失数据 1.为空值数据赋值 2.删除空数据行和列 3.填充所有缺失数据 4.判断是否有NaN值 二.统计 1.平均值.求和.累加和 2.shift函数 3.sub函数 4.appl ...

  6. 数据挖掘 pandas基础入门之查看数据

    为什么80%的码农都做不了架构师?>>>    import pandas import numpy# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFra ...

  7. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  8. 【Python】Pandas基础:结构化数据处理

    python:Pandas基础:结构化数据处理 目录: 文章目录 @[toc] 一 pandas及其重要性 二 pandas的数据结构介绍 1 Series 2 DataFrame 3 索引对象 三 ...

  9. pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

    作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...

最新文章

  1. 项目需求|室内场景三维空间重建项目
  2. typora 公式_如何用Typora写Markdown上传至知乎
  3. 为什么我不喜欢数据库三范式
  4. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....
  5. 内部类 java 1614957119
  6. 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)
  7. [Android]利用run-as命令在不root情况下读取data下面的数据
  8. AI人工智能技术还原康乾盛世三代皇帝样貌,太帅了!
  9. 使用阿里云加速器 配置 Docker 镜像加速器
  10. 解决keep-live使用之后的问题
  11. 数据库系统原理——数据库编程
  12. 飞信2008内测版下载
  13. python中class什么意思_python中的class是什么意思
  14. iPhone 12 Pro测量人的身高
  15. python里打印空格_python打印空格
  16. 插入报错 Could not set property ‘id‘ of ‘class com.chen.flowerdemo.entity.Flower‘ with value
  17. 一点接入全网互通,企业上云就用它!
  18. SylixOS设备驱动
  19. 关于用GetDIBits代替GetPixel效率低的问题
  20. 一道反序列化的CTF题分享

热门文章

  1. 2022-2028年中国FEP薄膜行业市场发展规模及市场分析预测报告
  2. 科大奥锐干涉法测微小量实验的数据_光学干涉观测精确丈量宇宙 | 赛先生天文...
  3. 解决LC_ALL: 无法改变区域选项 (UTF-8): 没有那个文件或目录的问题
  4. python读取word
  5. 一起读Bert文本分类代码 (pytorch篇 五)
  6. Python zip() 函数
  7. “ compiler-rt”运行时runtime库
  8. Activity在有Dialog时按Home键的生命周期
  9. 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用
  10. java is not a enclosing class_Java Class getEnclosingClass()用法及代码示例