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中for语句简单遍历数据的方法
May 07 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python实现Event回调机制的方法
Feb 13 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
python 并发下载器实现方法示例
Nov 22 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
python批量提取图片信息并保存的实现
Feb 05 Python
Python实现仓库管理系统
May 30 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的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
python递归实现快速排序
2018/08/18 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
商业房地产广告语
2014/03/13 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
员工家属慰问信
2015/03/24 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python