我正在从事重复分类项目。我正在计算几天内重复和新邮件之间的时间间隔。我想在此时间间隔上应用一个函数,该函数指出是新邮件还是重复邮件。
功能:
days = df['days_difference']
if(days<30):
return 'repeat'
else:
return 'fresh'
我遇到错误:'str'和'int'实例之间不支持
“ days_difference”列包含整数值和无值。
寻找解决方案!
答案 0 :(得分:1)
这基本上意味着您的'days'变量是一个字符串。您不能使用“ <”将字符串与整数进行比较。 试试:
...
if(int(days)<30):
...
答案 1 :(得分:0)
错误是不言自明的:
Python函数错误:类型'str'和'int'之间不支持'<'
这是由str
和int
类型的比较引起的,这在Python 3中是无效的(尽管在Python 2中可以)。
示例:
result = '20' > 10 # In Python 3, this is illegal and will raise an exception
对于您而言,该错误很可能是由测试if(days<30):
引起的。您的数据框可能包含str
个值。在尝试与另一个值进行比较之前,您可能需要将它们转换为int
:
days = int(df['days_difference'])
if(days<30):
return 'repeat'
else:
return 'fresh'
答案 2 :(得分:0)
您应该考虑的一条建议是,始终使用从python得到的确切错误执行搜索,并且经常在0.1毫秒内得到响应。
在您的情况下,您正在将整数值(比方说2)与字符串值(恰好是'2')进行比较,而python无法理解。
您可以将`int(days)'和30进行比较,例如:
if(int(day) < 30):
return 'repeat'
else:
return 'fresh'