我是Python的新手。在数据帧中,有两列,即DOB(出生日期)和DOD(死亡日期)。我想在数据框中创建一个名称为“ IS_ALIVE”的新类别列。当填充DOB且DOD为null时,此新字段IS_ALIVE的条件应为“ 1”;否则为0。当DOB和DOD都不为空时,IS_ALIVE应该为“ 0”,这意味着DOD中填充了某些日期。
python - 检查几列中的日期,并在python中创建一个新列-LMLPHP

我搜索并尝试了多种方法,没有运气。请帮我。

最佳答案

您可以使用由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)

10-02 07:42