gpt4 book ai didi

python - 根据过滤器使用第二个数据帧中的值更新数据帧

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:04 32 4
gpt4 key购买 nike

我有两个数据框:

print df1
name value a value b recommendation
a Arn 1 30 Up
b Bob 1 50 Wait
c Cain 2 70 Up
d Dain 3 80 Wait

print df2
name value a value b recommendation
a Arn 3 50 Up
b Bob 2 90 Up
c Cain 4 170 Up
d Dain 9 280 Up

我正在尝试使用 df2 值更新 df1,其中建议使用更新方法在 df1 上“等待”:

df1.update(df2, filter_func = df1.loc[df1['recommendation'] == 'Wait'])

这不起作用。知道如何解决这个问题吗?

编辑

预期输出为:

print df1
name value a value b recommendation
a Arn 1 30 Up
b Bob 2 90 Up
c Cain 2 70 Up
d Dain 9 280 Up

最佳答案

使用 mask ,将所有内容转为 np.nan ,然后我们使用 combine_first

df1=df1.mask(df1=='Wait').combine_first(df2)
df1
Out[621]:
name valuea valueb recommendation
a Arn 1 30 Up
b Bob 1 50 Up
c Cain 2 70 Up
d Dain 3 80 Up

如果需要更新整行

df1.loc[(df1.recommendation!='Wait')].combine_first(df2)
Out[623]:
name valuea valueb recommendation
a Arn 1.0 30.0 Up
b Bob 2.0 90.0 Up
c Cain 2.0 70.0 Up
d Dain 9.0 280.0 Up

关于python - 根据过滤器使用第二个数据帧中的值更新数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861268/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com