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. jquery字符串数组转json字符串 C#json字符串转字符串list

    一.jquery字符串数组转json字符串 var str=['1','2','3']; var jsonText= JSON.stringify(str);//把一个对象转换成json字符串 str ...

  2. Http报文长度的计算

    客户机与服务器需要某种方式来标示一个报文在哪里结束和在下一个报文在哪里开始. 一般使用Content-Length表示body报文体的长度,这样往后截取即可获得整个报文.对于普通的页面.图片皆可使用. ...

  3. Editplus配置java编译环境

    EditPlus配置java编译环境 第一步:检测自己是否已经有jdk 1.win+r,输入cmd,打开控制台 2.控制台下输入javac出现类似的画面,代表jdk已经成功安装 第二步:打开Editp ...

  4. dojo topic 发布与订阅 小例子可以参考下

    <!DOCTYPE html><html> <head> <title></title></head> <body> ...

  5. (转载)ASP.NET Quiz Answers: Does Page.Cache leak memory?

    原文地址:http://blogs.msdn.com/b/tess/archive/2006/08/11/695268.aspx "We use Page.Cache to store te ...

  6. android下的异步任务

    异步任务一般用在加载一些网络资源的时候用,主要的实现方法是新建一个类来继承AsyncTask这个父类,然后复写该类下面的一些方法,其中doInBackground方法是必须要的,下面看代码 packa ...

  7. 如何将js导入时的小红叉去掉

    右键WebRoot-Myeclipse-Exclude From Validation

  8. Hibernate笔记2

    一.持久化类 1.持久化标识OID     数据库中叫做主键,对应实体的ID属性即为OID;Hibernate通过OID区分两个对象是否为同一对象;OID的生成一般交由程序自动处理; 2.持久化类   ...

  9. Check-Point-Security-Gateway-BYOL-R77.30-041.161

    平台: CentOS 类型: 虚拟机镜像 软件包: checkpoint redhat smartconsole basic software security vfw 服务优惠价: 按服务商许可协议 ...

  10. jquery datatable 获取当前分页的数据

    使用jquery datatable 遇到分页分别求和时,找了半天才找到获取当前分页数据的方法,以此总结 var table=$('#example').DataTable( { "pagi ...