我是Python的新手。在数据帧中,有两列,即DOB(出生日期)和DOD(死亡日期)。我想在数据框中创建一个名称为“ IS_ALIVE”的新类别列。当填充DOB且DOD为null时,此新字段IS_ALIVE的条件应为“ 1”;否则为0。当DOB和DOD都不为空时,IS_ALIVE应该为“ 0”,这意味着DOD中填充了某些日期。
我搜索并尝试了多种方法,没有运气。请帮我。
最佳答案
您可以使用由isna
链接的notna
和&
(按位与)创建布尔掩码,并将True/False
转换为1/0
的整数:
df['IS_ALIVE'] = (df.DOB.notna() & df.DOD.isna()).astype(int)
#for old versions of pandas
#df['IS_ALIVE'] = (df.DOB.notnull() & df.DOD.isnull()).astype(int)