我正在提取特定范围内的数据,并提出一个新列,当列中的值落入该范围内时,新列表示1,否则则为0。
我没有运气就尝试使用布尔条件。
data["normal"]=np.where((data["sysBP"]<80) & (data["diaBP"]<120),1,0)
data["prehyper"]=np.where(((data["sysBP"]<90) & (data["sysBP"]>=80)) &
((data["diaBP"]<140) & (data["diaBP"]>=120)),1,0)
我希望新列显示该范围内的数据为1,否则显示0。我上面的代码得到了全0的列。
答案 0 :(得分:1)
您可以使用astype(int)将True转换为1,将False转换为0:
data["normal"] = ((data["sysBP"]<80) & (data["diaBP"]<120)).astype(int)
data["prehyper"] = ((data["sysBP"]<90) & (data["sysBP"]>=80) & (data["diaBP"]<140) & (data["diaBP"]>=120)).astype(int)