查找特定字符串在列中出现的次数

2024-05-23 19:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从“Description”列中数一数字符串为“hanger”的单词数。所以我定义了一个函数:

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将列中的一些行视为对象而不是字符串,有什么方法可以转换它吗?你知道吗

你觉得我做错了什么?你知道吗


Tags: 函数字符串intruereturnif定义title
2条回答

您的列中似乎有混合的数据类型,而且由于lower()只是字符串的一个方法,因此当pandas尝试调用数值函数(在本例中是float)时,您会遇到一个错误。你知道吗

此快速调整可能对您有用:

def hanger_count(title): 
    if 'hanger' in str(title).lower().split():
        return True
    else:
        return False

您可以使用str.contains()count()执行以下操作:

df[df['Description'].str.contains('hanger', case=False, na=False)].count()

相关问题 更多 >