如何根据另一列的条件替换一列中的 NaN 值?

How to replace NaN values from a column based on a condition from another column?

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

我已经尝试使用 np.where,但出现错误 "Invalid syntax",而且我真的看不出我的语法哪里错了。

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

由此table我想获得以下输出:

                  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

提前致谢!

怎么样

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)

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

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

应该有帮助。