有没有办法在“for”循环中嵌套一个“if”语句,然后在新列表中以“True”、“False”或“unconfirated”的形式返回?

2024-10-02 10:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我当前在数据帧中有一个Series列(“DateDiff”),我正在尝试在它旁边创建一个新的列表/系列,根据“DateDiff”列中的值返回“True”、“False”或“unconfirated”

我尝试在for循环中创建一个嵌套的if函数,然后将这些返回附加到一个名为“fraud”的新列表中

minus = condensed['DEATHDATE'] - condensed['STOP']
minus = minus.tolist()
fraud = []
for value in minus:
    if value in minus > 0:
        fraud.append('True')
    elif value in minus < 0:
        fraud.append('False')
    elif value in minus == 0:
        fraud.append('Unsure')

我希望它能穿过每一行的[minus],检查它是否是>&书信电报;,或==为0,然后返回并将“True”、“False”或“unconfirated”附加到列表[list]

每当我尝试运行上面的代码时,总是收到这个错误消息

类型错误:'>;'“list”和“int”实例之间不支持


Tags: ingtfalsetrue列表forifvalue
2条回答

因为您已经在列表中循环,所以应该使用变量value来引用迭代中的当前项。因此,if语句应该如下所示:

if value > 0:

其他的也一样。基本上,您需要删除每行上的in minus,否则它会将整个minus列表与数字0进行比较,这不是您想要的结果

使用for循环时,不需要说if value in minus > 0。减号是一个列表,不能将列表与整数进行比较。相反,您只需要if value > 0,因为它已经在for循环中了。您的代码应如下所示:

minus = condensed['DEATHDATE'] - condensed['STOP']
minus = minus.tolist()
fraud = []
for value in minus:
    if value > 0:
        fraud.append('True')
    elif value < 0:
        fraud.append('False')
    elif value == 0:
        fraud.append('Unsure')

只是你的for循环中的一个简单误解。快乐的编码

相关问题 更多 >

    热门问题