更新一个 pandas 数据帧,使用另一个数据帧中的数据。

10 浏览
0 Comments

更新一个 pandas 数据帧,使用另一个数据帧中的数据。

我有两个相似的数据框。我想根据相同的索引和列合并/更新它们,以更新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可能会有帮助,但我有点困惑。谢谢。

0
0 Comments

问题:如何使用一个数据框的数据更新另一个数据框?

原因:在处理数据分析任务中,经常需要将一个数据框的数据更新到另一个数据框中。这样可以保持数据的一致性和最新性。

解决方法一:使用combine_first函数和reindex函数。具体代码如下:

df3 = df2.combine_first(df1).reindex(df1.index)
print (df3)

该方法会将df2中的数据更新到df1中,并保持df1原有的行索引。

解决方法二:使用update函数。具体代码如下:

df1.update(df2)
print (df1)

该方法会将df2中的数据更新到df1中,并且该操作是原地进行的,即直接修改df1的值。如果将该操作赋值给变量,会返回None。

通过上述两种方法,可以方便地将一个数据框的数据更新到另一个数据框中,实现数据的同步更新。

0