无法直接merge时基于另一DataFrame新增关联列并过滤行的实现问题
解决方案
你完全可以用merge实现需求,选择**内连接(inner join)**模式即可自动过滤掉没有匹配object的行,具体实现逻辑如下:
内连接的特性就是仅保留关联键在两个表中同时存在的行,刚好匹配你需要的删除无匹配行的要求,不需要额外做过滤处理。你原代码中Yes对应值写为1.1属于笔误,调整为需求要求的1.0即可。
实现代码
import pandas as pd # 转换number3的取值 df_2['number3'] = df_2['number3'].replace(to_replace=['No', 'Yes'], value=[0.0, 1.0]) # 提取关联需要的字段,避免value1、value2等冗余字段带入结果 df_2_for_merge = df_2[['object', 'number3']] # 内连接合并 result_df = pd.merge(df_1, df_2_for_merge, on='object', how='inner')
运行后得到的result_df就是你需要的预期结果。
内容的提问来源于stack exchange,提问作者johnnydoe
相关产品推荐
相关产品推荐

