【问题标题】:How can I replace missing values in a dataframe with values from another dataframe?如何用另一个数据框中的值替换数据框中的缺失值?
【发布时间】:2019-12-27 06:14:54
【问题描述】:

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

【问题讨论】:

    标签: python dataframe join merge


    【解决方案1】:

    加油宝宝

    这个怎么样?

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      相关资源
      最近更新 更多