使用现有列上的条件操作创建新列

时间:2019-05-16 05:08:42

标签: python pandas numpy

我正在提取特定范围内的数据,并提出一个新列,当列中的值落入该范围内时,新列表示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的列。

1 个答案:

答案 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)