Pandas中的.update()方法

Pandas的update()方法用于在原地更新DataFrame,依据另一个对象的值进行替换。它可以设置是否覆盖已有值(overwrite参数),并可通过filter_func参数选择性更新特定条件的值。此方法在处理数据更新时能避免创建新对象,但需注意会直接修改原始数据。
摘要由CSDN通过智能技术生成

39c54801313a7624a289a086f9e37dd5.png

来源:DeepHub IMBA
本文约900字,建议阅读5分钟
.update()方法可以用来在原地更新数据,而不需要创建一个新的对象。

在Pandas中,update()方法用于将一个DataFrame或Series对象中的值更新为另一个DataFrame或Series对象中的对应值。这个方法可以用来在原地更新数据,而不需要创建一个新的对象。

update()方法有几个参数,其中最重要的是other参数,它指定了用来更新当前对象的另一个DataFrame或Series对象。当调用update()方法时,它会将other对象中的值替换当前对象中相应位置的值。

c29a5de625b7559d79989b69aa9a9522.jpeg

下面是update()方法的基本语法:

DataFrame.update(other, overwrite=True, filter_func=None, errors='raise')
  • other:要用来更新当前对象的另一个DataFrame或Series对象。

  • overwrite:一个布尔值,指定是否要覆盖当前对象中的值。默认为True,表示用other对象中的值完全替换当前对象中的值;如果设置为False,则只会替换NaN值。

  • filter_func:一个可调用对象,用于筛选要更新的值。只有返回True的值才会被更新。

  • errors:指定处理错误的方式。默认为'raise',表示如果更新过程中出现错误,将引发异常;如果设置为'ignore',则会忽略错误并继续执行。

需要注意的是,update()方法会就地修改当前对象,而不会返回一个新的对象。这与许多Pandas方法的行为不同,因为它们通常会返回一个新的对象。因此在使用update()方法之前,请确保对数据进行了适当的备份或者确保没有破坏原始数据的需求。

让我们从需要更新开始,我们的数据如下:

6d051f225550be427b6324e35969910a.png

我们想要将下面的数据匹配到原始数据上:

987ae7c783cb1706450642da1a22e6ec.png

如果直接使用,看看结果是什么:

df.update(df1)
 df

c2e001d780a84f56fd9d587df58eafa8.png

所有单元格都将被替换,除非我们的新DF有空,update()方法内联地改变了原始的数据,而不是创建副本。

overwrite参数

除了空值所有单元格都被替换了,这时因为.update()只是假设新数据更相关。如果只想替换缺失的值,请可以设置参数' overwrite = False '

df.update(df1,overwrite=False)
 df

62be21b698b8af7d03e2afb6f84dfa36.png

filter_func参数

也可以通过使用' filter_func '参数来更新除null以外的单元格。例如只替换偶数的值。

df.update(df1,filter_func=lambda x : x%2==0)
 df

f15ba150231199fefe6084fac60123b3.png

可以看到只更新了符合判断条件的值。

update()方法可以方便的将一个DataFrame或Series对象中的值更新为另一个DataFrame或Series对象中的对应值,但是我们却很少用到它。所以在处理缺失或者过期数据更新时,pandas中的update方法是一个很有用的工具。但是需要注意的是,在使用update()方法之前,需要对数据进行了适当的备份或者确保没有破坏原始数据的需求,因为他会直接修改我们的DF。

编辑:黄继彦

d130250f839efdea287b5dfb932db108.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值