You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Pandas DataFrame中统计指定列表单词次数并新增列

最优实现方案

要高效统计每行Speech列中MMA相关单词/短语的出现次数,推荐使用Pandas向量化字符串操作结合正则表达式,避免逐行循环,保证处理效率。

实现步骤

  1. 构建匹配正则模式:处理单词列表,生成支持不区分大小写且完整匹配的正则表达式,避免部分字符误匹配(比如防止把mmaaaa统计为mma)。
  2. 用向量化方法统计匹配次数:通过str.findall提取所有匹配项,再用str.len()获取对应数量。

完整代码

import pandas as pd
import re

mma_related_words = ['mma', 'ju jitsu', 'boxing']

data = {
  "Name": ['Dana White', 'Triple H'],
  "Speech": ['mma is a fantastic sport. ju jitsu makes you better as a person.', 'Boxing sucks. Professional wrestling is much better.']
}

df = pd.DataFrame(data)

# 构建正则模式:转义特殊字符,用|连接,添加单词边界确保完整匹配
pattern = r'\b(?:{})\b'.format('|'.join(re.escape(word) for word in mma_related_words))
# 统计匹配次数,忽略大小写差异
df['MMA Related Word Count'] = df['Speech'].str.findall(pattern, flags=re.IGNORECASE).str.len()

print(df)

输出结果

NameSpeechMMA Related Word Count
Dana Whitemma is a fantastic sport. ju jitsu makes you better as a person.2
Triple HBoxing sucks. Professional wrestling is much better.1

方案优势

  • 高效性:全程使用Pandas向量化操作,比apply逐行循环效率高数倍,适配大数据集处理。
  • 准确性:通过re.escape处理单词中的特殊字符,\b确保完整匹配,re.IGNORECASE兼容大小写差异。
  • 扩展性:新增/修改MMA相关单词时,只需调整mma_related_words列表,无需修改核心逻辑。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:55:28