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

从DataFrame列创建词元集合与词频字典:现有方法效率评估及计数字典实现问询

关于DataFrame列词元集合与词频字典的高效实现问题

嘿,我来帮你捋捋这两个问题~

一、词元集合的最优高效方案

你当前用set(list(itertools.chain.from_iterable(df.b.str.split())))的方法确实能得到列'b'的词元集合,但其实pandas内置的向量化操作会更高效,尤其是当你的DataFrame数据量较大的时候。

推荐的更优写法是利用str.split(expand=True)把拆分后的词展开成多列,再用stack()把所有词堆叠成一个Series,最后转成集合:

word_set = set(df.b.str.split(expand=True).stack())

这个方法依赖pandas的底层优化,避免了手动迭代的开销,运行速度会比你原来的方法更快,代码也更简洁直观。

二、生成词元词频计数字典

要生成包含词元和对应出现次数的字典,直接用pandas的value_counts()方法就可以轻松实现,这也是最高效的方式:

word_freq_dict = df.b.str.split(expand=True).stack().value_counts().to_dict()

用你的示例DataFrame测试的话,得到的字典会是:

{'more': 2, 'The': 1, 'Effect': 1, 'effective': 1, 'than': 1, 'bark': 1, 'oola': 1, 'a': 1}

如果需要忽略大小写(比如把"The"和"the"算作同一个词),可以在拆分前先把文本转成小写:

word_freq_dict = df.b.str.lower().str.split(expand=True).stack().value_counts().to_dict()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:32:47