有没有办法在“ for”循环中嵌套“ if”语句,然后在新列表中返回“ True”,“ False”或“不确定”?

时间:2019-10-25 02:57:55

标签: python for-loop if-statement nested

我目前在DataFrame中有一个Series列(“ DateDiff”),并且我试图在其旁边创建一个新列表/系列,以根据这些值返回“ True”,“ False”或“不确定”在“ DateDiff”列中。

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

pyparsing.pyparsing_common

我希望它贯穿[减号]的每一行,检查它是否>,<或==等于0,然后返回并附加“ True”,“ False”或“不确定” ”添加到列表[list]。

每当我尝试运行上面的代码时,我都会不断收到此错误消息。

TypeError:“>”实例与“列表”实例之间不支持“>”

2 个答案:

答案 0 :(得分:1)

由于已经遍历列表,因此应该使用变量value来引用迭代中的当前项目。因此,您的if语句应改为:

if value > 0:

与其他人相同。基本上,您需要删除每行上的in minus,否则将整个minus列表与数字0进行比较,这不是您想要的情况。

答案 1 :(得分: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循环中只是一个简单的误解。祝您编码愉快!