import pandas as pd
import numpy as np df = pd.DataFrame(np.random.randn(5, 3), index=['a', 'c', 'e', 'f',
'h'],columns=['one', 'two', 'three']) df = df.reindex(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
print(df)
print('################缺失值判断######################')
print('--------Series的缺失值判断---------')
print (df['one'].isnull())
'''
--------Series的缺失值判断---------
a    False
b     True
c False
d True
e False
f False
g True
h False
Name: one, dtype: bool
'''
print('---------输出Series缺失值和索引--------')
print(df['one'][df['one'].isnull()])
'''
---------输出Series缺失值和索引--------
b NaN
d NaN
g NaN
Name: one, dtype: float64
'''
print('--------dataframe的缺失值判断---------')
print(df.isnull())
'''
--------dataframe的缺失值判断---------
one two three
a False False False
b True True True
c False False False
d True True True
e False False False
f False False False
g True True True
h False False False
'''
print('--------输出dataframe的缺失值和索引---------')
data = df[df.isnull().values==True]
print(data[~data.index.duplicated()])
'''
--------输出dataframe的缺失值和索引---------
one two three
b NaN NaN NaN
d NaN NaN NaN
g NaN NaN NaN
'''
print('--------输出dataframe的有缺失值的列---------')
print(df.isnull().any())
'''
--------输出dataframe的有缺失值的列---------
one True
two True
three True
dtype: bool
'''
print('################缺失值过滤######################')
print('--------Series的缺失值过滤---------')
print(df['one'].isnull())
'''
################缺失值过滤######################
--------Series的缺失值过滤---------
a False
b True
c False
d True
e False
f False
g True
h False
Name: one, dtype: bool
'''
print('--------使用dropna方法删除缺失数据,返回一个删除后的Series--------')
print(df['one'].dropna())
'''
--------使用dropna方法删除缺失数据,返回一个删除后的Series--------
a -0.211055
c -0.870090
e -0.203259
f 0.490568
h 1.437819
Name: one, dtype: float64
'''
print('--------dataframe的缺失值过滤---------')
print(df.dropna())
'''
--------dataframe的缺失值过滤---------
one two three
a -0.211055 -2.869212 0.022179
c -0.870090 -0.878423 1.071588
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
h 1.437819 -0.370934 -0.482307
'''
print('-------当行全为NaN的时候,才删除,参数how默认是any,含有缺失值就删除--------')
print(df.dropna(how="all"))
'''
-------当行全为NaN的时候,才删除,参数how默认是any,含有缺失值就删除--------
one two three
a -0.211055 -2.869212 0.022179
c -0.870090 -0.878423 1.071588
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
h 1.437819 -0.370934 -0.482307
'''
print('################缺失值填充######################')
print('------指定特殊值填充缺失值-------')
print(df.fillna(0))
'''
################缺失值填充######################
------指定特殊值填充缺失值-------
one two three
a -0.211055 -2.869212 0.022179
b 0.000000 0.000000 0.000000
c -0.870090 -0.878423 1.071588
d 0.000000 0.000000 0.000000
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
g 0.000000 0.000000 0.000000
h 1.437819 -0.370934 -0.482307
'''
print('------不同的列用不同的值填充------')
print(df.fillna({'one':1,'two':2,'three':3}))
'''
------不同的列用不同的值填充------
one two three
a -0.211055 -2.869212 0.022179
b 1.000000 2.000000 3.000000
c -0.870090 -0.878423 1.071588
d 1.000000 2.000000 3.000000
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
g 1.000000 2.000000 3.000000
h 1.437819 -0.370934 -0.482307
'''
print('------前向填充------')
print(df.fillna(method="ffill"))
'''
------前向填充------
one two three
a -0.211055 -2.869212 0.022179
b -0.211055 -2.869212 0.022179
c -0.870090 -0.878423 1.071588
d -0.870090 -0.878423 1.071588
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
g 0.490568 -0.968058 -0.999899
h 1.437819 -0.370934 -0.482307
'''
print('------后向填充------')
print(df.fillna(method="bfill"))
'''
------后向填充------
one two three
a -0.211055 -2.869212 0.022179
b -0.870090 -0.878423 1.071588
c -0.870090 -0.878423 1.071588
d -0.203259 0.315897 0.495306
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
g 1.437819 -0.370934 -0.482307
h 1.437819 -0.370934 -0.482307
'''
print('------平均值填充------')
print(df.fillna(df.mean()))
'''
------平均值填充------
one two three
a -0.211055 -2.869212 0.022179
b 0.128797 -0.954146 0.021373
c -0.870090 -0.878423 1.071588
d 0.128797 -0.954146 0.021373
e -0.203259 0.315897 0.495306
f 0.490568 -0.968058 -0.999899
g 0.128797 -0.954146 0.021373
h 1.437819 -0.370934 -0.482307
'''

Python数据分析(二)pandas缺失值处理的更多相关文章

  1. Python数据分析(二): Pandas技巧 (1)

    第一部分: ipython http://www.cnblogs.com/cgzl/p/7623347.html 第二部分: numpy http://www.cnblogs.com/cgzl/p/7 ...

  2. Python数据分析(二): Pandas技巧 (2)

    Pandas的第一部分: http://www.cnblogs.com/cgzl/p/7681974.html github地址: https://github.com/solenovex/My-Ma ...

  3. Python数据分析之pandas基本数据结构:Series、DataFrame

    1引言 本文总结Pandas中两种常用的数据类型: (1)Series是一种一维的带标签数组对象. (2)DataFrame,二维,Series容器 2 Series数组 2.1 Series数组构成 ...

  4. Python数据分析库pandas基本操作

    Python数据分析库pandas基本操作2017年02月20日 17:09:06 birdlove1987 阅读数:22631 标签: python 数据分析 pandas 更多 个人分类: Pyt ...

  5. Python 数据分析:Pandas 缺省值的判断

    Python 数据分析:Pandas 缺省值的判断 背景 我们从数据库中取出数据存入 Pandas None 转换成 NaN 或 NaT.但是,我们将 Pandas 数据写入数据库时又需要转换成 No ...

  6. Python数据分析之pandas学习

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

  7. Python数据分析之pandas

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

  8. Python数据分析之Pandas操作大全

    从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...

  9. Python数据分析(二): Numpy技巧 (1/4)

    In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np  

  10. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

随机推荐

  1. 阅读《大型网站技术架构》,并结合"重大需求征集系统"有感

    今天阅读了<大型网站技术架构:核心原理与案例分析>的第五.六.七章.这三张主要是讲述了一个系统的可用性.伸缩性和可扩展性.而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务 ...

  2. go学习笔记-语言指针

    语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...

  3. Java基础——内部类

    一.什么是内部类 将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类 内部类所在的类在编译成功后,会出现这样两个class文件:OuterClass.class和OuterClass$In ...

  4. PHP.44-TP框架商城应用实例-后台19-权限管理-RBAC需求分析

    RBAC:Role Based Access Control:基于角色的访问控制 需求分析:[类似效果如下图] 1.权限,角色,管理员 2.权限管理[无限级] 注意:权限会被分配给角色,而不是给管理员 ...

  5. ORB-SLAM (四)tracking跟踪解析

    初始化完成后,对于相机获取当前图像mCurrentFrame,通过跟踪匹配上一帧mLastFrame特征点的方式,可以获取一个相机位姿的初始值:为了兼顾计算量和跟踪鲁棒性,处理了三种模型: 1. Tr ...

  6. ES5新增数组方法(3):some

    检查数组元素中是否有元素符合指定. // 数组中的元素部分满足指定条件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.some((value, in ...

  7. IDEA的terminal设置成Linux的终端一样

    方式一:通过在Windows上安装Linux命令行工具 前提:需要安装Linux终端的命令行工具,并且最好可以安装 Gow (一个Windows下模拟Linux命令行工具集合,它集成了 Liunx 环 ...

  8. 【转】Linux学习(1)-常用快捷键、文件管理和查询

    原文链接:http://www.cnblogs.com/zhaopei/p/7397402.html 有话要说 为什么要用Linux?要用Linux的原因太多,想说说不完啊. 如果你说用Linux只是 ...

  9. 为什么logstash进程的CPU使用率100%?

    机器上有个进程cpu使用率很高,近100%了, Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie%Cpu(s): 99.0 ...

  10. Cassandra 常见错误索引

    类型错误 类型错误调试的技巧 有时候,类型错误提示比较不友好,比如不知道哪个字段出错. 在php中可以用 //过滤几个数据进行操作,逐个检查,或者折半查找错误 $data = array_splice ...