更新一个 pandas 数据帧,使用另一个数据帧中的数据。
更新一个 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.merge
或pd.concat
可能会有帮助,但我有点困惑。谢谢。
问题:如何使用一个数据框的数据更新另一个数据框?
原因:在处理数据分析任务中,经常需要将一个数据框的数据更新到另一个数据框中。这样可以保持数据的一致性和最新性。
解决方法一:使用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。
通过上述两种方法,可以方便地将一个数据框的数据更新到另一个数据框中,实现数据的同步更新。