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实现给qq邮箱发送邮件的方法
May 28 Python
详解python单例模式与metaclass
Jan 15 Python
python 基础教程之Map使用方法
Jan 17 Python
python实现学生管理系统
Jan 11 Python
python2.7实现FTP文件下载功能
Apr 15 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
python中的json总结
Oct 11 Python
python学生管理系统开发
Jan 30 Python
python机器人运动范围问题的解答
Apr 29 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
如何利用python读取micaps文件详解
Oct 18 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
mysql时区问题
2008/03/26 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
php的4种常用运行方式详解
2016/12/22 PHP
删除重复数据的算法
2006/11/23 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
Python常用模块用法分析
2014/09/08 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
学位证书委托书
2014/09/30 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书