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

如何计算Excel/CSV源DataFrame中不同标签类别的单词词频

不同标签下文本词频统计实现方案

你现有代码存在逻辑错误:两次数据集筛选都用了df['label'] >= s的条件,最终df1和df2存储的是完全相同的label≥1的数据,根本没有拿到label=0的子集。另外分类别筛选直接用等值判断即可,用大于等于的写法很容易混入其他标签的数据。

步骤1:导入依赖、读取数据

根据你的文件格式选择对应读取代码即可:

import pandas as pd
from collections import Counter

# 读取CSV格式文件
df = pd.read_csv("你的文件存储路径.csv")
# 如果是Excel格式文件,替换成下面这行代码
# df = pd.read_excel("你的文件存储路径.xlsx")

步骤2:正确拆分不同标签的数据集

# 筛选标签为1的文本子集
df_label1 = df[df['label'] == 1]
# 筛选标签为0的文本子集
df_label0 = df[df['label'] == 0]

步骤3:分数据集统计词频

如果你的text字段是空格分隔的英文内容,直接用内置的Counter即可完成统计,不需要安装额外第三方库:

# 统计label=1类别下的词频
words_1 = ' '.join(df_label1['text'].astype(str).tolist()).split()
freq_1 = Counter(words_1)

# 统计label=0类别下的词频
words_0 = ' '.join(df_label0['text'].astype(str).tolist()).split()
freq_0 = Counter(words_0)

如果需要把词频结果转成结构化表格方便查看、导出,可以用下面的代码:

# 转成按频次倒序排列的DataFrame
freq_df1 = pd.DataFrame(freq_1.items(), columns=['单词', '出现次数']).sort_values(by='出现次数', ascending=False)
freq_df0 = pd.DataFrame(freq_0.items(), columns=['单词', '出现次数']).sort_values(by='出现次数', ascending=False)

# 导出结果到CSV文件
freq_df1.to_csv("label1词频统计结果.csv", index=False, encoding='utf-8-sig')
freq_df0.to_csv("label0词频统计结果.csv", index=False, encoding='utf-8-sig')

如果需要处理中文文本,只需要在split切词前增加分词步骤即可,比如用jieba分词把整句切分成词语列表,后续统计逻辑完全一致。

注意事项

  • 统计前调用astype(str)是为了规避text字段存在空值、数字类型值导致的字符串拼接报错
  • 如果需要过滤停用词(比如英文的the/a/of,中文的“的/了/吗”这类无意义虚词),提前准备停用词表,在统计前把词列表中属于停用词的元素剔除即可
  • 不要用>=这类范围判断做标签筛选,万一后续label字段新增2、3等其他取值,会把非目标类别的数据混入统计结果,导致词频不准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:58:01