You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何校验df1的所有ParentID是否存在于df2中并提取不存在的记录

解法说明

要实现提取df1中ParentID不存在于df2的记录,用左连接即可完成,具体写法如下:

1. 基于merge实现(逻辑与你给出的参考语法完全对齐)

# 左连接两个表,匹配键为ParentID
merged_df = df1.merge(df2, on="ParentID", how="left")
# 筛选匹配后df2字段为空的记录,仅保留df1原有字段
result = merged_df[merged_df["Location"].isna()][["ParentID", "Name"]]

2. 基于DataFrame.join方法实现

如果你要严格用join方法,需要先把右表的连接键设置为索引:

result = df1.join(
    df2.set_index("ParentID"), 
    on="ParentID", 
    how="left"
).query("Location.isna()")[["ParentID", "Name"]]

补充:更简洁的非join实现

如果不需要强制用join,也可以直接用isin判断:

result = df1[~df1["ParentID"].isin(df2["ParentID"])]

以上三种写法最终输出的result和你给出的示例结果完全一致。

内容的提问来源于stack exchange,提问作者x89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:06:03