Python统计pandas列匹配词数量并赋值到对应匹配词列的实现方法
你可以直接遍历预定义词列表,结合pandas的str.count()方法逐列赋值即可,实现逻辑非常简洁:
完整实现代码
import pandas as pd # 构造示例输入数据 df = pd.DataFrame({ 'text': [ "I have a pen and ipod, but I lost it today.", "I have pineapple and pen, but I lost it today." ] }, index=[1, 2]) # 预定义匹配词列表 long_list = ['pen', 'pineapple', 'ipod'] # 核心逻辑:逐列统计匹配次数 for word in long_list: # 写法1:子串模糊匹配,只要文本中包含对应字符就算匹配(例:pen会匹配到penapple) df[word] = df['text'].str.count(word) # 写法2:完整单词匹配,只有独立出现的单词才会被统计,避免误匹配 # df[word] = df['text'].str.count(fr'\b{word}\b')
执行后生成的df就是你需要的输出样式。如果匹配词包含.、+、*这类正则特殊字符,需要先对匹配词做转义处理,把写法2改成:
import re df[word] = df['text'].str.count(fr'\b{re.escape(word)}\b')
内容的提问来源于stack exchange,提问作者codedancer
相关产品推荐
相关产品推荐

