我目前在DataFrame中有一个Series列(“ DateDiff”),并且我试图在其旁边创建一个新列表/系列,以根据这些值返回“ True”,“ False”或“不确定”在“ DateDiff”列中。
我试图在for循环中创建一个嵌套的if函数,然后将这些返回值附加到名为“ fraud”的新列表中。
pyparsing.pyparsing_common
我希望它贯穿[减号]的每一行,检查它是否>,<或==等于0,然后返回并附加“ True”,“ False”或“不确定” ”添加到列表[list]。
每当我尝试运行上面的代码时,我都会不断收到此错误消息。
TypeError:“>”实例与“列表”实例之间不支持“>”
答案 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循环中只是一个简单的误解。祝您编码愉快!