Python函数错误:类型'str'和'int'之间不支持'<'

时间:2018-12-07 12:31:41

标签: python function operators

我正在从事重复分类项目。我正在计算几天内重复和新邮件之间的时间间隔。我想在此时间间隔上应用一个函数,该函数指出是新邮件还是重复邮件。

功能:

days = df['days_difference']
if(days<30):
   return 'repeat'
else:
   return 'fresh'

我遇到错误:'str'和'int'实例之间不支持

“ days_difference”列包含整数值和无值。

寻找解决方案!

3 个答案:

答案 0 :(得分:1)

这基本上意味着您的'days'变量是一个字符串。您不能使用“ <”将字符串与整数进行比较。 试试:

...
if(int(days)<30):
...

答案 1 :(得分:0)

错误是不言自明的:

  

Python函数错误:类型'str'和'int'之间不支持'<'

这是由strint类型的比较引起的,这在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'