电子邮件重复分类:Python函数和条件语句错误
我已经编写了一个python函数,根据客户最后一封邮件和当前邮件的日期差异来检查邮件是重复的还是新鲜的 “Days_Difference”包含0、15等数值以及“None” 功能定义如下:电子邮件重复分类:Python函数和条件语句错误,python,function,Python,Function,我已经编写了一个python函数,根据客户最后一封邮件和当前邮件的日期差异来检查邮件是重复的还是新鲜的 “Days_Difference”包含0、15等数值以及“None” 功能定义如下: def Status(df['Days_Difference']): if(df['Days_Difference'] < 30): return 'repeat' elif(df['Days_Difference'] > 30): return
def Status(df['Days_Difference']):
if(df['Days_Difference'] < 30):
return 'repeat'
elif(df['Days_Difference'] > 30):
return 'fresh'
else:
return 'not in list'
我得到一个错误:
“我假设df是一个数据帧 问题是你自己发现的 你说df['a']包含整数和'None'None'是字符串,因此不能与整数进行比较。这很容易复制:
df = pd.DataFrame({'a': [1, 'None', 3, 4, 5]})
if df['a'] < 3:
pass
TypeError: '<' not supported between instances of 'str' and 'int'
这是因为df['a']<3返回索引掩码,其中a中的值满足条件<3:
对“假设”本质上正在做的事情打电话给布尔没有任何意义。[真,真,假,假,假]是真的吗?这是假的吗?正如错误所说,它是不明确的
您需要重新考虑这个函数的逻辑,以及您希望它在什么条件下返回什么
df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
if df['a'] < 3:
pass
ValueError: The truth value of a Series is ambiguous. Use a.empty,
a.bool(), a.item(), a.any() or a.all().
print((df['a'] < 3).tolist())
# [True, True, False, False, False]