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

Pandas DataFrame遍历行分词列表 删除指定词表词汇实现方法

pandas过滤列中词列表的指定停用词实现

场景说明

你的DataFrame中Q395_R列每一行对应一位受访者的分词结果,单元格存储值为词语列表;现有待移除词语列表words395,需要逐行遍历删除所有出现在待移除列表中的词语。

优化提示:开始处理前先把待移除词语列表转为set集合类型,词语存在性判断的效率会比直接用列表高数十倍,数据量较大时收益非常明显。


方法1:两层嵌套循环实现(完全匹配逐行逐词遍历的需求)

如果需要明确写出两层遍历逻辑,直接用以下代码即可:

# 待移除词转集合,提升查找速度
remove_set = set(words395)

# 第一层循环:遍历所有行
for row_idx in df.index:
    # 读取当前行的词列表
    raw_words = df.loc[row_idx, 'Q395_R']
    cleaned_words = []
    # 第二层循环:遍历当前行的每个词
    for word in raw_words:
        # 仅保留不在待移除列表里的词
        if word not in remove_set:
            cleaned_words.append(word)
    # 将过滤后的结果写回原单元格
    df.loc[row_idx, 'Q395_R'] = cleaned_words

方法2:简洁向量化实现(无显式循环,运行效率更高)

如果不需要强制写嵌套循环,用pandas的apply配合列表推导式,代码更简洁、运行速度更快:

remove_set = set(words395)
df['Q395_R'] = df['Q395_R'].apply(lambda words: [w for w in words if w not in remove_set])

处理效果

两种方法实现的效果完全一致,都会得到你预期的结果:

  • 原第一行的accident、第二行的spending、第三行的understanding、第四行的le、第五行的spending都会被过滤掉,和你给出的预期样例完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:24:23