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

如何统计数据表指定列的单词提及次数,使用Counter报set不可哈希错误怎么解决

报错原因
  • Counter只能统计可哈希类型(比如字符串、数字、元组)的出现频率,你tokenized列每一行存储的是set集合,set属于可变不可哈希类型,直接传入Counter就会触发unhashable type: 'set'报错
  • 你当前代码的逻辑是统计每一行的set整体的出现次数,和你要统计「所有set内部单词的全局提及次数」的需求不匹配
解决方案

有两种常用实现方式:

方式1:用pandas explode方法拆分后统计(代码最简洁)

先把每个set里的单词拆分为单独的行,再传入Counter统计:

import pandas as pd
from collections import Counter

counts = Counter(reviews_english['tokenized'].explode())

方式2:迭代遍历所有set收集单词后统计(兼容性最好,适配所有pandas版本)

先把所有set里的单词汇总到一个列表里,再统计:

from collections import Counter

all_words = []
for word_set in reviews_english['tokenized']:
    # 过滤可能存在的空值行
    if isinstance(word_set, set):
        all_words.extend(word_set)

counts = Counter(all_words)
结果使用说明
  • 最终counts是词频统计字典,通过counts[目标单词]即可查询对应单词的总提及次数
  • 调用counts.most_common(N)可以获取出现次数最高的前N个单词列表

内容的提问来源于stack exchange,提问作者Nicole Brühwiler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 23:57:00