python pandas利用fillna方法实现部分自动填充功能

昨天,我们学习了pandas中的dropna方法,今天,学习一下fillna方法。该方法的主要作用是实现对NaN值的填充功能。该方法主要有3个参数,分别是:value,method,limit等。其余参数可以通过调用help函数获取信息。

(1)value

该参数主要是确定填充数值

>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')
>>> df
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  NaN   32 124.0
2 jiken  89.0   89 NaN
3 jiken  89.0   89 125.0
# 默认将所有值均填充为0
>>> df.fillna(0)
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  0.0   32 124.0
2 jiken  89.0   89 0.0
3 jiken  89.0   89 125.0

# 也可以通过字典控制每列传什么值
>>> my_dict = {'Chinese' : 92, 'id' : 98}
>>> df.fillna(my_dict)
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  92.0   32 124.0
2 jiken  89.0   89 98.0
3 jiken  89.0   89 125.0

2、method参数

该参数主要控制自动填充,是向上填充还是向下填充
method : {‘backfill', ‘bfill', ‘pad', ‘ffill', None}, default None
pad / ffill: 向下自动填充
backfill / bfill: 向上自动填充

# 向下
>>> df.fillna(method='ffill')
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  12.0   32 124.0
2 jiken  89.0   89 124.0
3 jiken  89.0   89 125.0

# 向上
>>> df.fillna(method='bfill')
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  89.0   32 124.0
2 jiken  89.0   89 125.0
3 jiken  89.0   89 125.0

3、limit参数

该参数类似于mysql中的limit。向上或者向下填充时控制最大填充前几行

# 限制自动填充最大填充1行。
>>> df.fillna(method = 'bfill', limit=1)
  name Chinese Chinese.1  id
0  bob  12.0   12 123.0
1 millor  89.0   32 124.0
2 jiken  89.0   89 125.0
3 jiken  89.0   89 125.0

哈哈,以上就是关于fillna方法的介绍。
关于,isna方法很好理解,判断是否为NaN值

>>> df.isna()
 name Chinese Chinese.1  id
0 False False  False False
1 False  True  False False
2 False False  False True
3 False False  False False
>>> 

总结

到此这篇关于python pandas通过fillna方法实现部分自动填充功能的文章就介绍到这了,更多相关python pandas fillna自动填充内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python可变参数会自动填充前面的默认同名参数实例

    最近在学习Python的时候遇到一个知识点,在此记录下来 可变参数会自动填充前面的同名默认参数 比如下面这个函数 def add_student(name="Bob", **info_dict): print(name) 如果info_dict里面也有name,当我们这样调用时 info_dict = { "name" : "Tom", "age" : 20 } add_student(**info_dict)# Tom 那么

  • Python Pandas 获取列匹配特定值的行的索引问题

    给定一个带有列"BoolCol"的DataFrame,如何找到满足条件"BoolCol" == True的DataFrame的索引 目前有迭代的方式来做到这一点: for i in range(100,3000): if df.iloc[i]['BoolCol']== True: print i,df.iloc[i]['BoolCol'] 这虽然可行,但不是标准的 Pandas 方式.经过一番研究,我目前正在使用这个代码: df[df['BoolCol'] == T

  • Python Pandas中根据列的值选取多行数据

    Pandas中根据列的值选取多行数据 # 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isin df.loc[df['column_name'].isin(some_values)] # 多种条件的选取 用 & df.loc[(df['column'] == some_value) & df['other_column'].isin(some_values)] # 选取不等于某些值的

  • Python利用pandas处理Excel数据的应用详解

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用pandas就会非常高效,基本上3行代码可以搞定你20行代码的操作!该教程仅仅限于结合柠檬班的全栈自动化测试课程来讲解下pandas在项目中的应用,这仅仅只是冰山一角,希望大家可以踊跃的去尝试和探索! 一.安装环境: 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令

  • 详解Python3 pandas.merge用法

    摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的merge函数进行详解.(用过SQL或其他关系型数据库的可能会对这个方法比较熟悉.)码字不易,喜欢请点赞!!! 1.merge函数的参数一览表 2.创建两个DataFrame 3.pd.merge()方法设置连接字段. 默认参数how是inner内连接,并且会按照相同的字段key进行合并,即等价于o

  • python pandas利用fillna方法实现部分自动填充功能

    昨天,我们学习了pandas中的dropna方法,今天,学习一下fillna方法.该方法的主要作用是实现对NaN值的填充功能.该方法主要有3个参数,分别是:value,method,limit等.其余参数可以通过调用help函数获取信息. (1)value 该参数主要是确定填充数值 >>> df = pd.read_excel(r'D:/myExcel/1.xlsx') >>> df name Chinese Chinese.1 id 0 bob 12.0 12 123

  • python中利用zfill方法自动给数字前面补0

    python中有一个zfill方法用来给字符串前面补0,非常有用 view sourceprint? n = "123" s = n.zfill(5) assert s == "00123" zfill()也可以给负数补0 n = "-123" s = n.zfill(5) assert s == "-0123" 对于纯数字,我们也可以通过格式化的方式来补0 n = 123 s = "%05d" % n a

  • Python Pandas常用函数方法总结

    初衷 NumPy.Pandas.Matplotlib.SciPy 等可以说是最最最常用的 Python 库了.我们在使用 Python 库的时候,通常会遇到两种情况.以 Pandas 举例. 我想对 Pandas 数据结构的数据实现某种操作,但是我不知道或者说在我的印象里似乎已经不记得是否有这样的函数方法,如果有,又该用哪个方法呢? 我想实现某种数据操作,我记得我用过或者见过某个函数可以实现这个功能,但是我死活想不起来那个函数叫啥了.或者,我想起来了哪个函数可以实现这个功能,但是我想知道是否有更

  • Python Pandas实现数据分组求平均值并填充nan的示例

    Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值. DataFrame数据格式 fillna方式实现 groupby方式实现 DataFrame数据格式 以下是数据存储形式: fillna方式实现 1.按照industryName1列,筛选出业绩 2.筛选出相同行业的Series 3.计算平均值mean,采用fillna函数填充 4.append到新DataFrame中 5.循环遍历行业名称,完成2,3,4步骤 factordatafillna = pd.

  • SpringBoot Mybatis Plus公共字段自动填充功能

    一.应用场景 平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个字段有没有传进去,很麻烦.mybatisPlus有一个很好的解决方案.也就是公共字段自动填充的功能.一般满足下面条件的字段就可以使用此功能: 这个字段是大部分表都会有的. 这个字段的值是固定的,或则字段值是可以在后台动态获取的. 常用的就是last_update_time,last_update_name这两个字段. 二.配置MybatisPlus 导包:

  • Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)

    官网的demo献上 在elementui Input输入框中可以找到远程搜索组件,获取服务端的数据 官网中的数据list都是写在loadAll()中的,而如果我们此时要用到mock的数据就要在此基础上对代码进行修改. -mock数据的获取- 我们要获取远程mock中所有学生的学号信息,根据输入的数据来远程查找目标,并且在选中该目标后能够自动填充对应的姓名.生日.手机等信息,实现快速获取信息的功能,再也不用手动一个个去输入所有的数据啦- 在template中添加el-autocomplete <e

  • MyBatis-Plus实现字段自动填充功能的示例

    目录 一.前言 二.实现 1. 实体类 2. 公用字段 - 使用注解填充字段 3. 自定义MyMetaObjectHandler字段自动填充处理类继承MetaObjectHandler 一.前言 在项目中,我们有一些公共的字段需要做修改 如: gmt_create:创建时间 creator_id:创建人 gmt_modified:修改时间 modifier_id:修改人 这时候我们可以采用 MyBatis-Plus 中的字段自动填充功能去实现 思路:抽取公用字段封装到BaseEntity类中,再

  • 实例详解MyBatis-plus自动填充功能

    目录 什么是自动填充 1.这个功能是做什么的呢? 2.下面用一个例子来学习这个功能 3.测试 4.结果 什么是自动填充 有些表中会有更新时间.创建时间.更新人或者创建人这些字段. 每次对数据进行新增.删除.修改时都需要对这些字段进行设置.传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作.这种做法不仅容易忘记导致出错.而且代码会显得特别冗余. 虽然新增时间和修改时间可以使用数据库的时间,但是新增人和修改人就不能使用这样的功能. 所以MP就提供自动填充的功能,帮助自定

  • MyBatis-Plus实现公共字段自动填充功能详解

    目录 1.问题分析 2.实现步骤 3. 实现字段全局填充 1.问题分析 我们在开发中经常遇到多个实体类有共同的属性字段,例如在用户注册时需要设置创建时间.创建人.修改时间.修改人等字段,在用户编辑信息时需要设置修改时间和修改人等字段.这些字段属于公共字段,也就是很多表中都有这些字段,能不能对于这些公共字段在某个地方统一处理,来简化开发呢? 答案就是我们可是使用Mybatis Plus提供的公共字段自动填充功能. 2.实现步骤 Mybatis Plus公共字段自动填充,也就是在插入或者更新的时候为

  • jQuery 禁止表单用户名、密码自动填充功能

    Html登录表单经常被自动填充,有的甚至用户从来没有登录过的网站也会有自动填充,甚是让人讨厌. Mozilla developer documentation 建议使用表单设置属性 tautocomplete="off" 来阻止浏览器从cache获取数据填充登录表单. <input type="text" name="foo" autocomplete="off" /> 但是这种方案不兼容某些Chrome.Fire

随机推荐