示例数据:
sample_data = [
{'Case #': 'A25', 'Parent Case #': 'A24', 'Data': 'Blah blah'},
{'Case #': 'B46', 'Parent Case #': nan, 'Data': 'Waka waka'},
{'Case #': 'B89', 'Parent Case #': 'B46', 'Data': 'Moo moo'},
{'Case #': 'C12', 'Parent Case #': nan, 'Data': 'Meow'},
{'Case #': 'C44', 'Parent Case #': nan, 'Data': 'Woof'},
{'Case #': 'C77', 'Parent Case #': 'C12', 'Data': 'Hiss'},
{'Case #': 'D55', 'Parent Case #': 'D2', 'Data': 'Ribbet'}
]
df = pd.DataFrame(sample_data)
数据由可能有也可能没有父事例的事例组成(即,它们可能是也可能不是子事例)。无孙事例/最大深度= 1。
但是,一些引用的父代在此数据集中不存在,因此这些情况实际上是孤立的。
对于我的数据来说,简单地删除对父对象的引用就足够了。我可以这样标识这些孤儿:
df.loc[~df["Parent Case #"].isna() & ~df2["Parent Case #"].isin(df2["Case #"].values)]
对于这两个匹配的行,我想删除“Parent Case #”引用(使该值nan
/仅对这两行为空)。我该怎么做呢?我觉得我只是错过了最后一步。我不知道如何使用我的条件及其逻辑进行赋值。
1条答案
按热度按时间vulvrdjw1#
您只需要指定要分配缺失值的列:
另一个想法-为所有行重新分配缺少的值: