我想根据另一列的条件替换一列中的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
谢谢!
答案 0 :(得分: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)
答案 1 :(得分:0)
我本来应该添加一条评论,但是由于缺乏声誉,所以必须在此处写评论。尝试在表达式中添加括号:
casualty_data["age_band_of_casualty"] = np.where((casualty_data["age_of_casualty"]>0) & (casualty_data["age_of_casualty"]<=5), "0-5", continue)
应该有帮助。