python - 如果 Join in pandas 中没有匹配项,则保留一列中的值
问题描述
我有两个表,表 1
id value
1. hello | world
1. hello | world
2. hello
3. world
4. my | universe
5. world
匹配表 - 表 2
id value
1. hello
2. hello
4. universe
如果未找到匹配项,则执行连接并保留旧值后的预期输出
id new_value
1. hello
2. hello
3. world
4. universe
5. world
我如何在熊猫中实现这一点,我是初学者,我可以加入。但是如果没有匹配项,我如何保留旧列中的值。
解决方案
假设您的数据框分别是 df1 和 df2:
mapper = dict(df2.set_index('id')['value'])
df1['value'] = df1.apply(lambda row: row['value'] if row['id'] not in mapper else mapper[row['id']], axis=1)
df1 = df1.drop_duplicates()
推荐阅读
- node.js - 关于MongoDB文件数据建模的讨论
- c - Rijndael S-box in C
- python - 如何针对数据框优化此方法?
- java - 启动时、时间和大小的翻转日志文件
- python - 在 Keras 中,如何根据 val 集中的 True Negatives 保存最佳模型?
- geograpy - 使用 Geograpy3 时出现错误“OperationalError: no such table: countries”
- python - Python 3 中的矩阵乘法
- python - 列中列表中的值计数
- java - How to move apply force to bodies in a top down game?
- mysql - avoid duplicating in Sequelize, Nodejs & Reactjs?