我正在尝试计算“描述”列中具有字符串“衣架”的单词数量。所以我定义了一个函数:
def hanger_count(title):
if 'hanger' in title.lower().split():
return True
else:
return False
当我用字符串测试它时,它似乎工作正常。但是当我尝试通过数据列运行函数时,使用函数:
ecomm['Description'].apply(hangercount)
我收到错误返回:
AttributeError: 'float' object has no attribute 'lower'
我认为问题是 python 将列中的某些行视为对象而不是字符串,有什么方法可以转换它吗?
你认为我做错了什么?
请您参考如下方法:
您的列中似乎有混合数据类型,并且由于 lower() 只是字符串的一种方法,当 pandas 尝试对数值调用该函数时,您会收到错误消息 (在本例中是一个 float )。
这个快速调整可能对你有用:
def hanger_count(title):
if 'hanger' in str(title).lower().split():
return True
else:
return False
