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

如何基于loc条件将DataFrame中孤儿行的Parent Case #设为nan

问题描述

我们有如下示例数据集,其中部分子案例引用的父案例未出现在数据集中(这类案例称为孤儿案例),需要将这些孤儿案例的Parent Case #字段设为nan。

import pandas as pd
import numpy as np

sample_data = [
  {'Case #': 'A25', 'Parent Case #': 'A24', 'Data': 'Blah blah'},
  {'Case #': 'B46', 'Parent Case #': np.nan, 'Data': 'Waka waka'},
  {'Case #': 'B89', 'Parent Case #': 'B46', 'Data': 'Moo moo'},
  {'Case #': 'C12', 'Parent Case #': np.nan, 'Data': 'Meow'},
  {'Case #': 'C44', 'Parent Case #': np.nan, 'Data': 'Woof'},
  {'Case #': 'C77', 'Parent Case #': 'C12', 'Data': 'Hiss'},
  {'Case #': 'D55', 'Parent Case #': 'D2', 'Data': 'Ribbet'}
]

df = pd.DataFrame(sample_data)

你已经通过以下条件识别出孤儿案例行:

df.loc[~df["Parent Case #"].isna() & ~df["Parent Case #"].isin(df["Case #"].values)]
解决方案

直接在loc中同时指定筛选条件与目标字段,即可完成赋值操作:

# 定位孤儿案例行并将Parent Case #设为nan
df.loc[~df["Parent Case #"].isna() & ~df["Parent Case #"].isin(df["Case #"].values), "Parent Case #"] = np.nan

验证结果

执行后查看数据集,A25和D55的Parent Case #已被成功设为nan:

print(df)

输出结果:

Case # Parent Case #       Data
0    A25           NaN  Blah blah
1    B46           NaN  Waka waka
2    B89           B46    Moo moo
3    C12           NaN       Meow
4    C44           NaN       Woof
5    C77           C12       Hiss
6    D55           NaN     Ribbet

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:25:17