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. jdk代理

    接口: public interface IUserService { public void saveUser(String username,String password); public vo ...

  2. webpack webpack-dev-server报错

    Error: getaddrinfo ENOTFOUND localhost at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlook ...

  3. P1736 创意吃鱼法80

    题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...

  4. 如何配置阿里Maven镜像

    1.下载maven的zip解压,官方下载地址为:http://maven.apache.org/download.cgi 选择需要下载maven的版本就好了 2.到下载的maven路径下,conf/s ...

  5. cron 任务执行表达式

    1.来源 开始我还不知道cron到底来源于哪里,不求甚解的我也没做过多了解,现在突然用到所以写一下. cron计划任务  其实只是linux 一个执行计划的一个工具或者执行程序. 在Linux系统中, ...

  6. SpringBoot的异步调用介绍

    参考博客: https://www.cnblogs.com/jebysun/p/9675345.html https://blog.csdn.net/weixin_38399962/article/d ...

  7. Cocos2d-x v3.1 安装图文教程(二)

       Cocos2d-x v3.1 安装图文教程(二) 如果我们需要在Android平台上运行就必须安装android的SDK,如果我们只想在window上运行就只需要安装Cocos2d-x就行了.当 ...

  8. zabbix-2.2.2(Ubuntu 14.04 LTS/OpenLogic 7.2)

    平台: arm 类型: ARM 模板 软件包: apache-2.4.7 mariadb-5.5.50 mysql-5.5.52-0ubuntu0.14.04.1 php-5.4.16 php-5.5 ...

  9. ssh免密钥登录一例问题

    今天遇到一个奇怪的问题,在同一机器上创建的普通用户使用 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.3.254 建立与root用户的免密钥通信,结果死活还是 ...

  10. jQuery_2_常规选择器-简单选择器

    JQuery最核心的组成部分就是:选择器引擎.它继承了css的语法,可以对DOM元素的标签名.属性名.状态等进行快速准确的选择. jQuery选择器的写法与CSS 选择器十分类似,只不过他们的功能不同 ...