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

2024-09-30 03:22:59 发布

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

所以我有一个包含脏话的列表,我想计算数据帧中脏话的出现次数swear_words = ['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'])

Tags: 函数brdfcountrdwordrowwords

热门问题