【问题标题】:How to replace NaN values from a column based on a condition from another column?如何根据另一列的条件替换列中的 NaN 值?
【发布时间】:2019-12-02 07:29:04
【问题描述】:

我想根据另一列的条件替换列中的 np.nan 值。更重要的是,我想用字符串替换 np.nan 值:

我已经尝试过使用 np.where,但我得到一个错误“无效的语法”,我真的看不出我的语法哪里错了。

casualty_data["age_band_of_casualty"] = np.where(casualty_data["age_of_casualty"]>0 & casualty_data["age_of_casualty"]<=5, "0-5", continue)
                  age_of_casualty   age_band_of_casualty                    
Accident_Index                                  
2016010000005       23                    21-25     
2016010000006       38                    Nan   
2016010000008       24                    21-25 
2016010000016       58                    Nan   
2016010000018       28                    26-35

从这个表中我想得到以下输出:

                  age_of_casualty   age_band_of_casualty                    
Accident_Index                                  
2016010000005       23                    21-25     
2016010000006       38                    36-45     
2016010000008       24                    21-25 
2016010000016       58                    56-65 
2016010000018       28                    26-35

提前致谢!

【问题讨论】:

    标签: python pandas replace conditional-statements nan


    【解决方案1】:

    怎么样

    casualty = casualty_data['age_of_casualty']
    replacing_values = (casualty-2).map(str) + '-' + (casualty+2).map(str)
    casualty_data["age_band_of_casualty"].fillna(replacing_values)
    

    【讨论】:

    • 只对缺失值的行计算replacing_values会更高效。
    【解决方案2】:

    我本来只想添加评论,但由于缺乏声誉,不得不在这里写下。尝试在表达式中添加括号:

    casualty_data["age_band_of_casualty"] = np.where((casualty_data["age_of_casualty"]>0) & (casualty_data["age_of_casualty"]<=5), "0-5", continue)
    

    应该有帮助。

    【讨论】:

    • 谢谢,但这给出了同样的错误。语法无效。
    • continue 是 Python 关键字。目前尚不清楚它在这里的用途,但这肯定会导致问题。
    • 我也是这么认为的,因为箭头显示了函数的结尾,这意味着要么缺少 ) 要么带有单词 continue。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-12-31
    • 2021-10-01
    • 2020-10-27
    • 2020-05-16
    • 2020-03-22
    • 2012-11-06
    • 1970-01-01
    • 2021-02-20
    相关资源
    最近更新 更多