Python数据分析(二)pandas缺失值处理
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缺失值处理的更多相关文章
- Python数据分析(二): Pandas技巧 (1)
第一部分: ipython http://www.cnblogs.com/cgzl/p/7623347.html 第二部分: numpy http://www.cnblogs.com/cgzl/p/7 ...
- Python数据分析(二): Pandas技巧 (2)
Pandas的第一部分: http://www.cnblogs.com/cgzl/p/7681974.html github地址: https://github.com/solenovex/My-Ma ...
- Python数据分析之pandas基本数据结构:Series、DataFrame
1引言 本文总结Pandas中两种常用的数据类型: (1)Series是一种一维的带标签数组对象. (2)DataFrame,二维,Series容器 2 Series数组 2.1 Series数组构成 ...
- Python数据分析库pandas基本操作
Python数据分析库pandas基本操作2017年02月20日 17:09:06 birdlove1987 阅读数:22631 标签: python 数据分析 pandas 更多 个人分类: Pyt ...
- Python 数据分析:Pandas 缺省值的判断
Python 数据分析:Pandas 缺省值的判断 背景 我们从数据库中取出数据存入 Pandas None 转换成 NaN 或 NaT.但是,我们将 Pandas 数据写入数据库时又需要转换成 No ...
- Python数据分析之pandas学习
Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...
- Python数据分析之pandas
Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...
- Python数据分析之Pandas操作大全
从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...
- Python数据分析(二): Numpy技巧 (1/4)
In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np
- Python数据分析(二): Numpy技巧 (2/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
随机推荐
- 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- PHP无法用下标访问
php数组分为普通数组和关联数组,普通数组可以用下标访问,而关联数组不可以.
- laydate js动态添加时间
$("#test2").click(function(){ var input=$('<input/>'); $("#test1").append( ...
- hadoop生态搭建(3节点)-04.hadoop配置
如果之前没有安装jdk和zookeeper,安装了的请直接跳过 # https://www.oracle.com/technetwork/java/javase/downloads/java-arch ...
- 如何保证HashMap线程安全
可使用Java 1.5推荐的java.util.concurrent包ConcurrentHashMap来实现,内部不再使用类似HashTable的synchronized同步锁,而是使用Reentr ...
- python2.7入门--- 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能.我们今天就来看一下这方面,首先得知道,Python 提供了一个 time 和 calendar 模块可以用于格式化日 ...
- Druid时序数据库常见问题及处理方式
最近将Druid-0.10.0升级到Druid-0.12.1的过程中遇到一些问题,为了后期方便分析问题和及时解决问题,特此写这篇文章将工作中遇到的Druid问题及解决办法记录下来,以供其他人借鉴,其中 ...
- jquery validation remote进行唯一性验证时只使用自定义参数,不使用默认参数
在使用validation进行唯一性验证时,想各个模块写一个统一的方法,相统一参数名称,但是remote方法会默认把对应的参数传过去 如: 会把role.roleName默认作为变量提交过去 所以想自 ...
- Hibernate-ORM:14.Hibernate中的命名查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述命名查询,所谓命名查询是什么呢? Hibernate中允许我们在xml,实体类,甚至注解的方式来编 ...
- thrift安装
yum -y install gcc-c++ autoconf automake sysconftool boost boost-devel libtool perl-ExtUtils-MakeMak ...