【问题标题】:How can I fill missing value in a particular case?在特定情况下如何填写缺失值?
【发布时间】:2020-06-29 15:09:41
【问题描述】:

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

例如,在第 36 个索引的“Job_Title”列中,有一个“客户经理”,其值为“关键技能”。现在,我想--

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

【问题讨论】:

    标签: python pandas dataframe missing-data


    【解决方案1】:

    我不确定我是否完全理解,但如果我解释正确,下面的代码应该可以工作。下面的代码所做的是按职称分组,如果有任何 NaN 作为同一职称的技能集,它会填写它。如果您想专门为客户经理做这件事,请使用 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'))
    

    【讨论】:

    • 这段代码确实很有意义,但是在运行它时,我遇到了一个错误——SyntaxError: unexpected EOF while parsing。你能告诉我它是关于什么的吗?
    • 我相信您可能需要先过滤掉 Job Title 中的 NaN。尝试使用此代码:df['Key Skills'] = df.loc[~df['Job Title'].isna()].groupby('Job Title')['Key Skills'].transform(lambda x: x.fillna(method = 'ffill').fillna(method='bfill'))
    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2021-01-21
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多