Python 将计数函数应用于数据帧会得到不同的结果

Python 将计数函数应用于数据帧会得到不同的结果,python,pandas,list,count,Python,Pandas,List,Count,所以我有一个包含脏话的列表,我想计算数据帧中脏话的出现次数咒骂文字=['ass','cunt'] 我创建了这个函数 def br(row): count = sum([row.count(word) for word in swear_words]) return count 这在我使用print(br(rd))时有效,因为rd=['bass','ass','sex','cunt']返回2 但是,当我将此函数应用于pandas数据帧时,其中行tokenW也是['bass'、'a

所以我有一个包含脏话的列表,我想计算数据帧中脏话的出现次数<代码>咒骂文字=['ass','cunt']

我创建了这个函数

def br(row):
    count = sum([row.count(word) for word in swear_words])
    return count
这在我使用
print(br(rd))
时有效,因为
rd=['bass','ass','sex','cunt']返回2

但是,当我将此函数应用于pandas数据帧时,其中行tokenW也是['bass'、'ass'、'sex'、'cunt'],该函数返回3,可能是因为它将bass计为ass

df['test'] = df.apply(lambda x: br(x['tokenW']), axis=1)
出什么事了

import pandas as pd

swear_words = ['ass', 'cunt']

data = [[['bass', 'ass', 'sex', 'cunt']]]
df = pd.DataFrame(data, columns = ['tokenW'])

rd =['bass', 'ass', 'sex', 'cunt']
def br(row):
    count = sum([row.count(word) for word in swear_words])
    return count

print(br(rd))
df['test'] = df.apply(lambda x: br(x['tokenW']), axis=1)
print(df['test'])

你能提供一个(我们可以轻松复制和运行的一小段代码)吗?刚刚添加了一个MRE你发布的代码为我生成了
2
2
。顺便说一下,您可以将语句重写为
df['test']=df['tokenW'].apply(br)
Does
df['test']=df['tokenW'].explode().isin(脏话).sum(level=0)
对您有用吗?这些代码对我也有用,但当我使用现有数据库
df=pd.read\u csv(“firga.csv”)时会产生3个
即使值与
rd