首页 > 解决方案 > 如何用另一个数据框中的值替换数据框中的缺失值?

问题描述

我有两个不同形状的数据框。我想从 df2 中存在的数据中填充我的 df1 中缺失的数据。

如何在保持 df1 的原始形状和列的同时加入这两个数据集?

我曾尝试使用 pd.merge,但我认为我的语法不正确。我在数据框中创建了新列,但我不能只将数据添加到 NaN 值。

我也尝试过先使用 combine ,但我认为我做的也不对。

df1 = pd.DataFrame({'a': ["dogs","cats","birds","turtles"], 'b': [1,5,"NA",10]})
print(df1)

df2 = pd.DataFrame({'a': ["birds"],'b': [6]})
print(df2)

df_Final = pd.DataFrame({'a': ["dogs","cats","birds","turtles"], 'b': [1,5,6,10]})
print(df_Final)

我希望输出是此处显示的 df_Final 数据框,其中“birds”值由 df2 填充。

标签: pythondataframejoinmerge

解决方案


加油宝贝

这个怎么样 ?

df1['b'] = df1['b'].where(df1['b']!=('NA'), df1['a'].map(df2.set_index('a')['b']))

Out[166]: 
         a   b
0     dogs   1
1     cats   5
2    birds   6
3  turtles  10

推荐阅读