Pandas之Fillna填充缺失数据的方法


Posted in Python onJune 25, 2019

约定:

import pandas as pd
import numpy as np
from numpy import nan as NaN

填充缺失数据

fillna()是最主要的处理方式了。

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1

代码结果:

0 1 2
0 1.0 2.0 3.0
1 NaN NaN 2.0
2 NaN NaN NaN
3 8.0 8.0 NaN

用常数填充:

df1.fillna(100)

代码结果:

0 1 2
0 1.0 2.0 3.0
1 100.0 100.0 2.0
2 100.0 100.0 100.0
3 8.0 8.0 100.0

通过字典填充不同的常数:

df1.fillna({0:10,1:20,2:30})

代码结果:

0 1 2
0 1.0 2.0 3.0
1 10.0 20.0 2.0
2 10.0 20.0 30.0
3 8.0 8.0 30.0

传入inplace=True直接修改原对象:

df1.fillna(0,inplace=True)
df1

代码结果:

0 1 2
0 1.0 2.0 3.0
1 0.0 0.0 2.0
2 0.0 0.0 0.0
3 8.0 8.0 0.0

传入method=” “改变插值方式:

df2=pd.DataFrame(np.random.randint(0,10,(5,5)))
df2.iloc[1:4,3]=NaN;df2.iloc[2:4,4]=NaN
df2

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 NaN 5.0
2 6 5 5 NaN NaN
3 1 9 9 NaN NaN
4 4 8 1 5.0 9.0
df2.fillna(method='ffill')#用前面的值来填充

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 4.0 5.0
2 6 5 5 4.0 5.0
3 1 9 9 4.0 5.0
4 4 8 1 5.0 9.0

传入limit=” “限制填充个数:

df2.fillna(method='bfill',limit=2)

代码结果:

0 1 2 3 4
0 6 6 2 4.0 1.0
1 4 7 0 NaN 5.0
2 6 5 5 5.0 9.0
3 1 9 9 5.0 9.0
4 4 8 1 5.0 9.0

传入axis=” “修改填充方向:

df2.fillna(method="ffill",limit=1,axis=1)

代码结果:

0 1 2 3 4
0 6.0 6.0 2.0 4.0 1.0
1 4.0 7.0 0.0 0.0 5.0
2 6.0 5.0 5.0 5.0 NaN
3 1.0 9.0 9.0 9.0 NaN
4 4.0 8.0 1.0 5.0 9.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
高考考python编程是真的吗
Jul 20 Python
python3让print输出不换行的方法
Aug 24 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
python 实现超级玛丽游戏
Nov 25 Python
pytorch 6 batch_train 批训练操作
May 28 Python
PYQT5实现控制台显示功能的方法
Jun 25 #Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 #Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 #Python
Pandas之ReIndex重新索引的实现
Jun 25 #Python
Python中使用__new__实现单例模式并解析
Jun 25 #Python
pyQt5实时刷新界面的示例
Jun 25 #Python
Pandas之MultiIndex对象的示例详解
Jun 25 #Python
You might like
php 不使用js实现页面跳转
2014/02/11 PHP
php实现图片添加水印功能
2014/02/13 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
xmlHTTP实例
2006/10/24 Javascript
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python易忽视知识点小结
2015/05/25 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python如何求解两数的最大公约数
2018/09/27 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python接口开发实现步骤详解
2020/04/26 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
学习自我鉴定
2014/02/01 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
自我查摆剖析材料
2014/10/11 职场文书