gpt4 book ai didi

python - Pandas 有条件地替换或更新整行

转载 作者:太空狗 更新时间:2023-10-30 02:25:14 24 4
gpt4 key购买 nike

我有以下 df:

    Name    Status   Data
0 Mike yes 123
1 Bob no 456
2 Ted yes 789
3 Fred yes

现在我有了一个新的df:

0 Mike no 345
1 Fred no 123

如何更新第一个 df 以反射(reflect)更改?这是替换函数还是合并函数?

输出:

    Name    Status   Data
0 Mike no 345
1 Bob no 456
2 Ted yes 789
3 Fred no 123

最佳答案

使用更新合并
注意:我将 df 限制为我想用双括号合并的列,以确保我的结果保持数据帧 df[['Name']]。然后我使用 dfn 进行左合并以添加我想要更新的列。 'left' 确保我获得与 df 相同的索引,并且可以毫无问题地愉快地更新

df.update(df[['Name']].merge(dfn, 'left'))
df

Name Status Data
0 Mike no 345.0
1 Bob no 456.0
2 Ted yes 789.0
3 Fred no 123.0

建议

如果要使用'Name'作为索引,将其设置为索引。

df = df.set_index('Name')
dfn = dfn.set_index('Name')

然后这变成了

pd.DataFrame.combine_first

流水线副本

dfn.combine_first(df)

Status Data
Name
Bob no 456.0
Fred no 123.0
Mike no 345.0
Ted yes 789.0

pd.DataFrame.update

到位

df.update(dfn)
df

Status Data
Name
Bob no 456.0
Fred no 123.0
Mike no 345.0
Ted yes 789.0

关于python - Pandas 有条件地替换或更新整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801834/

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