pandas 缺失值与空值处理的实现方法


Posted in Python onOctober 12, 2019

1.相关函数

  • df.dropna()
  • df.fillna()
  • df.isnull()
  • df.isna()

2.相关概念

空值:在pandas中的空值是""

缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可

3.函数具体解释

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

函数作用:删除含有空值的行或列

axis:维度,axis=0表示index行,axis=1表示columns列,默认为0

how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列

thresh:一行或一列中至少出现了thresh个才删除。

subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)

inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。

例子:

df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
        "toy": [np.nan, 'Batmobile', 'Bullwhip'],
         "born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
 
print df

pandas 缺失值与空值处理的实现方法

默认参数:删除行,只要有空值就会删除,不替换。

print df.dropna()
print df

pandas 缺失值与空值处理的实现方法

print "delete colums"
print df.dropna(axis=1) #delete col

pandas 缺失值与空值处理的实现方法

print "所有值全为缺失值才删除"
print df.dropna(how='all')

pandas 缺失值与空值处理的实现方法

print "至少出现过两个缺失值才删除"
print df.dropna(thresh=2)

pandas 缺失值与空值处理的实现方法

print "删除这个subset中的含有缺失值的行或列"
print df.dropna(subset=['name', 'born'])

pandas 缺失值与空值处理的实现方法

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

函数作用:填充缺失值

value:需要用什么值去填充缺失值

axis:确定填充维度,从行开始或是从列开始

method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现

limit:确定填充的个数,如果limit=2,则只填充两个缺失值。

示例:

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
         [3, 4, np.nan, 1],
         [np.nan, np.nan, np.nan, 5],
        [np.nan, 3, np.nan, 4]],
         columns=list('ABCD'))
 
print df
 
print "横向用缺失值前面的值替换缺失值"
print df.fillna(axis=1,method='ffill')
 
print "纵向用缺失值上面的值替换缺失值"
print df.fillna(axis=0,method='ffill')

pandas 缺失值与空值处理的实现方法

print df.fillna(0)

pandas 缺失值与空值处理的实现方法

不同的列用不同的值填充:

pandas 缺失值与空值处理的实现方法

对每列出现的替换值有次数限制,此处限制为一次

pandas 缺失值与空值处理的实现方法

DataFrame.isna()

判断是不是缺失值:

pandas 缺失值与空值处理的实现方法

isnull同上。

替换空值:

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
         [3, 4, "", 1],
         [np.nan, np.nan, np.nan, 5],
        [np.nan, 3, "", 4]],
         columns=list('ABCD'))
 
print df

pandas 缺失值与空值处理的实现方法

如上,缺失值是NAN,空值是没有显示。

替换空值代码:需要把含有空值的那一列提出来单独处理,然后在放进去就好。

clean_z = df['C'].fillna(0)
clean_z[clean_z==''] = 'hello'
df['C'] = clean_z
print df

pandas 缺失值与空值处理的实现方法

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

Python 相关文章推荐
Python实现字典的key和values的交换
Aug 04 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
pytorch中的自定义数据处理详解
Jan 06 Python
python 连续不等式语法糖实例
Apr 15 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 #Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 #Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 #Python
详解Python绘图Turtle库
Oct 12 #Python
Python中的list与tuple集合区别解析
Oct 12 #Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 #Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 #Python
You might like
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php获取远程文件内容的函数
2015/11/02 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
微信支付开发告警通知实例
2016/07/12 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python threading多线程编程实例
2014/09/18 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python处理按钮消息的实例详解
2017/07/11 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
python实现AdaBoost算法的示例
2020/10/03 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
HTML5计时器小例子
2013/10/15 HTML / CSS
大学在校生求职信范文
2013/11/21 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
冰峪沟导游词
2015/02/09 职场文书
商超业务员岗位职责
2015/02/13 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python