如何用另一个数据框中的值替换一个数据框中的缺失值?

时间:2019-08-22 00:12:57

标签: python dataframe join merge

我有两个不同形状的数据框。我想从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。

1 个答案:

答案 0 :(得分:0)

加油站

这个怎么样?

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