python - 如何用另一个数据框中的值替换数据框中的缺失值?
问题描述
我有两个不同形状的数据框。我想从 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 填充。
解决方案
加油宝贝
这个怎么样 ?
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
推荐阅读
- java - javax.Servlet 接口不存在
- unity3d - Unity 脚本在编辑器中运行但无法构建
- powerbi - 未过滤以显示所有材料时,保留计算是单个级别的材料
- c# - 如何解决此错误“错误 CS1503:参数 1:无法从 'void' 转换为 'bool'”
- javascript - 单击可见按钮时未定义
- node.js - 如何在打字稿中将数据推送到数组中
- python - HTTPError:平铺 URL 导致 404 错误
- lisp - 如何修复“BINDING form is not a proper list”错误
- c# - C# 是否有一种快速方法(可能是一些 Linq 函数)来查找 Card 类型数组中的每个 Card 是否共享相同的卡值?
- c# - MVC 5 身份验证在 IIS Express 中工作,但在 IIS 中不工作