Pandas缺失值填充 df.fillna()的实现

 更新时间:2022年07月24日 11:52:11   作者:山茶花开时。  
本文主要介绍了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'}})

结果展示

到此这篇关于Pandas缺失值填充 df.fillna()的实现的文章就介绍到这了,更多相关Pandas缺失值填充 df.fillna() 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现为Excel中每个单元格计算其在文件中的平均值

    Python实现为Excel中每个单元格计算其在文件中的平均值

    这篇文章主要为大家详细介绍了如何基于Python语言实现对大量不同的Excel文件加以跨文件、逐单元格平均值计算,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • pytorch点乘与叉乘示例讲解

    pytorch点乘与叉乘示例讲解

    今天小编就为大家分享一篇pytorch点乘与叉乘示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python操作 hbase 数据的方法

    python操作 hbase 数据的方法

    下面小编就为大家带来一篇python操作 hbase 数据的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Python数据分析之分析千万级淘宝数据

    Python数据分析之分析千万级淘宝数据

    网购已经成为人们生活不可或缺的一部分,本次项目基于淘宝app平台数据,通过相关指标对用户行为进行分析,从而探索用户相关行为模式。感兴趣的可以学习一下
    2022-03-03
  • Django contrib auth authenticate函数源码解析

    Django contrib auth authenticate函数源码解析

    这篇文章主要介绍了Django contrib auth authenticate函数源码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python多进程中的生产者和消费者模型详解

    python多进程中的生产者和消费者模型详解

    这篇文章主要介绍了python多进程中的生产者和消费者模型,生产者是指生产数据的任务,消费者是指消费数据的任务。当生产者的生产能力远大于消费者的消费能力,生产者就需要等消费者消费完才能继续生产新的数据
    2023-03-03
  • Python 多线程知识点总结及实例用法

    Python 多线程知识点总结及实例用法

    在本篇内容里小编给大家整理了一篇关于Python 多线程知识点总结及实例用法,对想好学习PY的用户非常友好,需要的参考下吧。
    2021-12-12
  • Python导入txt数据到mysql的方法

    Python导入txt数据到mysql的方法

    这篇文章主要介绍了Python导入txt数据到mysql的方法,涉及Python操作txt文件及mysql数据库的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Python中最好用的命令行参数解析工具(argparse)

    Python中最好用的命令行参数解析工具(argparse)

    这篇文章主要介绍了Python中最好用的命令行参数解析工具(argparse),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python正则表达式函数match()和search()的区别

    python正则表达式函数match()和search()的区别

    match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢?本文详细介绍了这2个函数的区别
    2021-10-10

最新评论