pandas使用浮点值NaN表示浮点和非浮点数组中的缺失数据:
In [14]: string_data = Series(['aardvark','artichoke',np.nan,'avocado'])
In [15]: string_data
Out[15]:
0 aardvark
1 artichoke
2 NaN
3 avocado
dtype: object
In [16]: string_data.isnull()
Out[16]:
0 False
1 False
2 True
3 False
dtype: bool
python内置的None值也会被当作NA处理:
In [17]: string_data[0] = None
In [18]: string_data.isnull()
Out[18]:
0 True
1 False
2 True
3 False
dtype: bool
1.滤除缺失数据
dropna用于返回一个仅含非空数据和索引值的Series:
In [20]: data = Series([1,NA,3.5,NA,7])
In [21]: data.dropna()
Out[21]:
0 1.0
2 3.5
4 7.0
dtype: float64
通过布尔型索引亦可以:
In [22]: data[data.notnull()]
Out[22]:
0 1.0
2 3.5
4 7.0
dtype: float64
对于DataFrame,dropna默认丢弃含有缺失值的行
In [23]: data = DataFrame([[1.,6.5,3.],[1.,NA,NA],[NA,NA,NA],[NA,6.5,3.]])
In [24]: cleaned = data.dropna()
In [25]: data
Out[25]:
0 1 2
0 1.0 6.5 3.0
1 1.0 NaN NaN
2 NaN NaN NaN
3 NaN 6.5 3.0
In [26]: cleaned
Out[26]:
0 1 2
0 1.0 6.5 3.0
传入how="all"丢弃全为NaN的行:
In [27]: data.dropna(how="all")
Out[27]:
0 1 2
0 1.0 6.5 3.0
1 1.0 NaN NaN
3 NaN 6.5 3.0
丢弃含有NaN的列:
In [28]: data[4] = NA
In [29]: data
Out[29]:
0 1 2 4
0 1.0 6.5 3.0 NaN
1 1.0 NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN 6.5 3.0 NaN
In [30]: data.dropna(axis=1,how="all")
Out[30]:
0 1 2
0 1.0 6.5 3.0
1 1.0 NaN NaN
2 NaN NaN NaN
3 NaN 6.5 3.0
thresh可以选择过滤含有多少有用数据的行
In [41]: df
Out[41]:
0 1 2
0 -0.184676 NaN NaN
1 0.565214 NaN NaN
2 0.440203 NaN NaN
3 0.188283 NaN 0.146847
4 1.696903 NaN 0.554640
5 -1.287915 0.139527 -0.494558
6 0.854922 0.299511 0.773247
In [42]: df.dropna(thresh=2) # thresh=2表示至少有两个非空数据
Out[42]:
0 1 2
3 0.188283 NaN 0.146847
4 1.696903 NaN 0.554640
5 -1.287915 0.139527 -0.494558
6 0.854922 0.299511 0.773247
In [43]: df.dropna(thresh=1)
Out[43]:
0 1 2
0 -0.184676 NaN NaN
1 0.565214 NaN NaN
2 0.440203 NaN NaN
3 0.188283 NaN 0.146847
4 1.696903 NaN 0.554640
5 -1.287915 0.139527 -0.494558
6 0.854922 0.299511 0.773247
2.填充缺失数据
fillna是最主要的填充缺省数据的方法:
In [9]: df.fillna(0)
Out[9]:
0 1 2
0 0.863556 0.000000 0.000000
1 -0.099558 0.000000 0.000000
2 -0.605804 0.000000 0.000000
3 -0.934688 0.000000 -1.198976
4 0.741383 0.000000 0.229845
5 -1.415495 0.511485 -0.086808
6 -0.748325 0.437964 -2.458319
通过字典调用fillna可以实现不同列填充不同值:
In [11]: df.fillna({1:0.5,2:-1})
Out[11]:
0 1 2
0 0.863556 0.500000 -1.000000
1 -0.099558 0.500000 -1.000000
2 -0.605804 0.500000 -1.000000
3 -0.934688 0.500000 -1.198976
4 0.741383 0.500000 0.229845
5 -1.415495 0.511485 -0.086808
6 -0.748325 0.437964 -2.458319

pandas知识点(处理缺失数据)的更多相关文章

  1. 利用Python进行数据分析(10) pandas基础: 处理缺失数据

      数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...

  2. pandas 4 处理缺失数据nan

    from __future__ import print_function import pandas as pd import numpy as np np.random.seed(1) dates ...

  3. Pandas汇总和处理缺失数据

    汇总的函数 方法 说明 count 非NA的值数量 describe 针对Series和DataFrame列计算汇总统计 min.max 计算最小值和最大值 argmin.argmax 计算能够获取到 ...

  4. Pandas之Dropna滤除缺失数据

    import pandas as pd import numpy as np from numpy import nan as NaN 一.处理Series对象 通过dropna()滤除缺失数据 fr ...

  5. pandas(五)处理缺失数据和层次化索引

    pandas用浮点值Nan表示浮点和非浮点数组中的缺失数据.它只是一个便于被检测的标记而已. >>> string_data = Series(['aardvark','artich ...

  6. 机器学习-Pandas 知识点汇总(吐血整理)

    Pandas是一款适用很广的数据处理的组件,如果将来从事机械学习或者数据分析方面的工作,咱们估计70%的时间都是在跟这个框架打交道.那大家可能就有疑问了,心想这个破玩意儿值得花70%的时间吗?咱不是还 ...

  7. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  8. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  9. 利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

    在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析.本部分关注可以聚合.合并.重塑数据的方法. 1.层次化索引 层次化索引(hierarchical indexing)是panda ...

随机推荐

  1. SpringMVC03 ParameterMethodNameResolver(参数方法名称解析器) And XmlViewResolver(视图解析器)

    参数方法名称解析器 1.配置依赖包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...

  2. 关于小程序后台post不到数据的问题

    小程序post请求获取不到数据问题 把headers的参数“Content-Type”的值改为application/x-www-form-urlencoded: Request Body Type ...

  3. 【踩坑】遇到 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 报错

    今天在重做 iblog 客户端时,测试接口情况,发现了 org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...

  4. windows安装ipython

    一.安装python2.71.下载地址https://www.python.org/downloads/2.安装后修改本地变量-右击电脑-属性-高级系统设置-环境变量-用户变量-新建-变量名:path ...

  5. 关于HTML中时间格式以及查询数据库的问题

    1.默认时间格式,加入属性dateFormate="yyyy-MM-dd" 2.设置默认值,value="2017-6-22" 3.在JavaScript中将获 ...

  6. System Center Configuration Manager 2016 域准备篇(Part2)

    对于" 服务器角色",请选择" Active Directory域服务",当系统提示您添加Active Directory域服务所需的功能时,请选择" ...

  7. 微信企业号升级企业微信后zabbix告警发不出去

    首先看下微信的脚本 #!/bin/bash ###SCRIPT_NAME:weixin.sh### ###send message from weixin for zabbix monitor### ...

  8. springMvc-框架搭建

    搭建springmvc框架的步骤: 1.在web.xml中配置springMvc的servlet 2.创建controller处理页面传来的数据, 3.床架springMvc文件,处理视图: 3.1: ...

  9. Altera FFT核使用详解

    简介 快速傅里叶变换(Fast Fourier Transform)最为一种高效的算法,被广泛的用于信号处理与数据分析等领域.对于设计工程师来讲,自己动手采样可编程语言来实现一个FFT/IFFT模块, ...

  10. 创建1M-1T的虚拟磁盘(内存盘)——使用破解版 Primo Ramdisk Server Edition v5.6.0

    破解版 Primo Ramdisk Server Edition v5.6.0下载: https://pan.lanzou.com/i0sgcne 步骤: 下载并解压后安装“Primo.Ramdisk ...