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的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
随机推荐
- sql sever 基础 建表
---恢复内容开始--- SQL Sever 基础以创建银行数据库bankDB为案例 1.创建数据库 1-1 创建文件夹用以存放数据库 1-2 创建建库bankDB 2.创建数据库 2-1.创建用户信 ...
- 类的特殊方法"__new__"详解
上代码! class A: def __new__(cls, *args, **kwargs): obj = super().__new__(cls) print("__new__ &quo ...
- Laravel-admin 当使用Form组件hasMany的时候 进行编辑出现错误 foreach错误的时候解决方案
我的关联关系原名是 goodImage 修改成 image 之后解决问题 分析得出应该是 laravel会将goodImage 转成 good_image字段 这样就foreach会报错 所以出 ...
- ajax提交时 富文本CKEDITOR 获取不到内容
ckeditor数据向content(页面用以替换的编辑框)的同步 问题: 我们发现,在数据通过ajaxSubmit提交的过程中,并不能将最新的数据进行提交.换句话说,最新的数据无法被jQuery.f ...
- struts2学习
struts2是一种基于mvc模式的轻量级web框架,它本质上相当于一个servlet,在mvc设计模式中,struts2作为控制器(Controller)来建立模型与视图的数据交互,struts2采 ...
- windows 安装 .net core 环境
windows 安装 环境说明 window10系统 .net core 1.0.1 visual studio code 安装 .net core Windows系统下安装软件基本上属于傻瓜式安装, ...
- 什么是OSS/BSS(电信业务)
电信业务运营支持系统(BOSS),面对客户是统一的:面对电信运营商,它融合了业务支撑系统(BSS)与运营支撑系统(OSS),是一个综合的业务运营和管理平台,同时也是真正融合了传统IP数据业务与移动增值 ...
- 可用率map处理
total_data =[ {'event_current_dealer': '陈铁', 'id__count': 66}, {'event_current_dealer': '丁凯', 'id__c ...
- PS作业
- 云计算之路-阿里云上:受够了OCS,改用ECS+Couchbase跑缓存
当今天早上在日志中发现这样的错误之后,对阿里云OCS(mecached缓存服务)的积怨倾泻而出. 2014-06-08 07:15:56,078 [ERROR] Enyim.Caching.Memca ...