python - 根据条件用另一个数据帧的值替换一个数据帧的值
问题描述
我有一个看起来像的 df
floor id p1 p2 p3
L1 1 5 6 7
L1 2 5 8 3
L2 1 4 2 1
L2 2 4 5 4
和 df2
floor id p1 p2 p4
L1 1 6 6 5
L1 2 9 8 5
L2 1 5 5 5
L2 2 4 5 5
如何用 df2 中的相应值替换特定楼层和 id 的 df 中 p1 和 p2 的值?
解决方案
我们也可以使用DataFrame.merge
df1 = (df1[df1.columns.difference(['p1','p2'])].merge(df2,
on =['floor','id'],
how ='left')
.fillna(df1)[df1.columns])
print(df1)
floor id p1 p2 p3
0 L1 1 6 6 7
1 L1 2 9 8 3
2 L2 1 5 5 1
3 L2 2 4 5 4
推荐阅读
- python - pip3 install isal 在 Ubuntu 18 中失败,但在 Ubuntu 20 中运行良好(dockerized 场景)
- reactjs - chartjs 插件数据标签不在图表上显示值
- python - Python Pandas - ValueError:列必须与键长度相同
- c# - 打开“网络保护”组策略时,WebClient.UploadFile 不起作用
- file - 使用jcl中的dfsort对vb文件中的pd fileld进行排序
- xslt - XSL - 如何在正确的位置输出嵌套的文本元素
- android - 任务“:app:kaptDebugKotlin”执行失败。创建适配器类时出错
- arrays - 访问数组时在 C 中获得意外输出。获得大部分 0 作为输出
- api - 使用 ImportJSONBasicAuth 将数据从我的银行 API 获取到 Google 表格时出错
- python - pip install pandas 与 Pylance 冲突