我想计算数据帧每一行的单词列表被提及的次数 使用此代码
df["Count"] = (
df['Token'].str.split()
.apply(Counter)
.apply(lambda counts: sum(word in counts for word in words))
)
我使用的是单词列表中的单词
words = ['wooly', 'girl']
但是,代码的结果是每个条目的值为0,这是不对的
我使用的数据是一个标记化列表,如下所示:['uno', 'dos', 'one', 'two', 'tres', 'quatro', 'yes', 'wooly', 'bully', 'watch', 'watch', 'come', 'come', 'watch', 'git', 'matty', 'told', 'hattie', 'thing', 'saw', 'two', 'big', 'horns', 'wooly', 'jaw', 'wooly', 'bully', 'wooly', 'bully', 'yes', 'drive', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'hattie', 'told', 'matty', 'lets', 'dont', 'take', 'chance', 'lets', 'lseven', 'come', 'learn', 'dance', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'watch', 'watch', 'watch', 'watch', 'yeah', 'yeah', 'drive', 'drive', 'drive', 'matty', 'told', 'hattie', 'thats', 'thing', 'get', 'someone', 'really', 'pull', 'wool', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'wooly', 'bully', 'watch', 'watch', 'come', 'got', 'got']
我通过df['Token'] = df['Token'].apply(str)
将此列表转换为字符串
易于使用的
defaultdict
或Counter
来自collections
:或:
要计算子字符串在字符串中出现的次数,可以执行以下操作
因此,您可以将此函数应用于包含字符串的列:
然后你只需要把计数加起来
Counter
的返回是一个字典若
Token
列中的值已经是一个列表,则不需要使用str.split()
相关问题 更多 >
编程相关推荐