首页 > 解决方案 > 在特定情况下如何填写缺失值?

问题描述

我有一个数据框,它有两列“Key_Skills”和“Job_Title”,(这两列都包含很少的缺失值)。现在,我想用填充了“Key_Skills”值的“Job_Title”列来估算“(Null)Key_Skills”值。

df

例如,在第 36 个索引的“Job_Title”列中,有一个“Accounts Manager”,其值为“Key Skills”。现在,我想——

  1. 首先,在整个数据框中将所有“客户经理”的“关键技能”赋予相同的值(关键技能)。
  2. 其次,我想参考第 1 点中的“职位”值完全填写“关键技能”列。每行 1 个。

标签: pythonpandasdataframemissing-data

解决方案


我不确定我是否完全理解,但如果我解释正确,下面的代码应该可以工作。下面的代码所做的是按职称分组,如果有任何 NaN 作为同一职称的技能集,它将填写它。如果您想专门为客户经理做这件事,请在 a 上使用 ffill 和 bfill仅包含客户经理的过滤数据集。你会翻转职位头衔和关键技能,以另一种方式做到这一点。

 df['Key Skills'] = df.loc[~df['Job Title'].isna()].groupby('Job Title')['Key Skills'].transform(lambda x: x.fillna(method = 'ffill').fillna(method='bfill'))

推荐阅读