Pandas缺失值填充 df.fillna()的实现
作者:山茶花开时。 发布时间:2023-11-24 00:01:41
标签:Pandas,缺失值填充,df.fillna()
df.fillna主要用来对缺失值进行填充,可以选择填充具体的数字,或者选择临近填充。
官方文档
DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
df.fillna(x)可以将缺失值填充为指定的值
import pandas as pd
# 原数据
df = pd.DataFrame({'A':['a1','a1','a2','a2'],
'B':['b1','b2',None,'b2'],
'C':[1,2,3,4],
'D':[5,6,None,8],
'E':[5,None,7,8]
})
# 将缺失值填充为0
res1 = df.fillna(0)
结果展示
df
res1
# 常用的方法还有以下几个:
# 填充为0
df.fillna(0)
# 填充为指定字符
df.fillna('missing')
df.fillna('暂无')
df.fillna('待补充')
# 指定字段填充
df.E.fillna('暂无')
# 指定字段填充
df.E.fillna(0, inplace = True)
# 只替换第一个
df.fillna(0, limit = 1)
# 将不同列的缺失值替换为不同的值
values = {'A':0,'B':1,'C':2,'D':3}
df.fillna(value = values)
需要注意的是,如果想让填充马上生效,需要重新为df赋值或者传入参数inplace = True
有时候我们不能填入固定值,而是按照一定的方法填充,df.fillna()提供了一个method参数,可以指定以下几个方法:
pad/ffill:向前填充,使用前一个有效值填充,df.fillna(method=’ffill’)可以简写为df.ffill()
bfill/backfill:向后填充,使用后一个有效值填充,df.fillna(method=’bfill’)可以简写为df.bfill()
import pandas as pd
# 原数据
df = pd.DataFrame({'A':['a1','a1','a2','a2'],
'B':['b1','b2',None,'b2'],
'C':[1,2,3,4],
'D':[5,6,None,8],
'E':[5,None,7,8]
})
# 取后一个有效值填充
res1 = df.fillna(method = 'bfill')
# 取前一个有效值填充
res2 = df.fillna(method = 'ffill')
结果展示
df
res1
res2
除了取前后值,还可以取经过计算得到的值,比如常用的平均值填充法:
# 填充列的平均值
df.fillna(df.mean())
# 对指定列填充平均值
df.fillna(df.mean()['B':'D'])
# 另一种填充列的平均值的方法
df.where(pd.notna(df),df.mean(),axis = 'columns')
缺失值的填充的另一思路是使用替换方法df.replace():
# 将指定列的空值替换成指定值
import pandas as pd
import numpy as np
# 原数据
df = pd.DataFrame({'A':['a1','a1','a2','a2'],
'B':['b1','b2',None,'b2'],
'C':[1,2,3,4],
'D':[5,6,None,8],
'E':[5,None,7,8]
})
df.replace({'B':{np.nan:'Hudas'}})
结果展示
来源:https://blog.csdn.net/Hudas/article/details/122923643


猜你喜欢
- Apache2 httpd.conf 中文版 # # 基于 NCSA 服务的配
- 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
- 1 基本信息- 模块主页:[github]- 类型:#第三方库2 安装方法pip install pythonping3 一般使用from
- 在日常生活中,经常会遇到需要提交身份证正反面证明资料的情况,而且这些网站大部分只接受pdf格式,这时候我们就需要把身份证正反面两张图片合成为
- adfuller函数返回值的参数说明from statsmodels.tsa.stattools import adfullert = ad
- 这篇文章主要介绍了如何基于Python实现数字类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- Quoted-printable 可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的
- 一、场景说明在面试接口自动化时,经常会问,其他接口调用的前提条件是当前用户必须是登录状态,如何处理接口依赖?在此之前我们介绍过session
- 本章将覆盖所有在Python中使用的基本I/O功能。有关更多函数,请参考标准Python文档。打印到屏幕上:产生输出最简单的方法
- 本文实例讲述了Python实现连接两个无规则列表后删除重复元素并升序排序的方法。分享给大家供大家参考,具体如下:# -*- coding:u
- 业务背景最近接到一个需求,在微信公众号界面设计一个独立界面,界面上有 A 电机进、A 电机退、B 电机进、B 电机退 4 个按钮,点击对应按
- 之前对bottle做过不少的介绍,也写过一些文章来说明bottle的缺点,最近发现其实之前有些地方说的不太公平,所以趁此机会也来更正一下。&
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 本文实例讲述了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法。分享给大家供大家参考,具体如下:当TXT文件太大,计算
- 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)引言由于win10电脑自带的获取文件路径为双引号括起来的单反斜杠,如下图。&
- 切分文件最近遇到需要切分文件的需求,当然首选用python来解决,网上搜了下感觉都太复杂了,其实用python自带函数即可解决。f = op
- 本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等.分析思路分析查询结果页在拉勾
- var arr=['a','b','c'];若要删除其中的'b',有两种方法
- 本文实例讲述了Python实现的读写json文件功能。分享给大家供大家参考,具体如下:相比java,python对json文件的处理就简单很
- php魔术方法在php类保留方法中以 “__”两个下划线开头的函数称为魔术方法,我的理解为php类设