gpt4 book ai didi

python - 使用来自另一个数据框的数据更新 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:22 24 4
gpt4 key购买 nike

我有两个相似的 DataFrame。

df1.head()
1 2 3 4
3234 Lorum Ipsum Foo Bar
8839 NaN NaN NaN NaN
9911 Lorum Ipsum Bar Foo
2256 NaN NaN NaN NaN

df2.head()
1 3 4
8839 Lorum Ipsum Foo
2256 Lorum Ipsum Bar

我想根据相同的索引和列合并/更新两者以更新 NaN​​ 值。

理想的结果:

df3.head()
1 2 3 4
3234 Lorum Ipsum Foo Bar
8839 Lorum NaN Ipsum Foo
9911 Lorum Ipsum Bar Foo
2256 Lorum NaN Ipsum Bar

df2 不包含与 df1 相同的所有列,但它包含的列匹配并且具有匹配的索引。

我已经试过了:

df3 = df1.update(df2)

但是一直没有成功。我一直在查看文档并认为 pd.mergepd.concat 可能有帮助,但我有点困惑。

谢谢

最佳答案

您可以使用 combine_firstreindex :

df3 = df2.combine_first(df1).reindex(df1.index)
print (df3)
1 2 3 4
3234 Lorum Ipsum Foo Bar
8839 Lorum NaN Ipsum Foo
9911 Lorum Ipsum Bar Foo
2256 Lorum NaN Ipsum Bar

或者使用您的解决方案,但是 update就地工作,所以如果分配给变量它返回 None:

df1.update(df2)
print (df1)
1 2 3 4
3234 Lorum Ipsum Foo Bar
8839 Lorum NaN Ipsum Foo
9911 Lorum Ipsum Bar Foo
2256 Lorum NaN Ipsum Bar

print (df1.update(df2))
None

关于python - 使用来自另一个数据框的数据更新 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51394653/

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