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

调用DataFrame的more_clean列构建word_dict时遇TypeError报错

解决TypeError: expected string or bytes-like object错误

你的问题出在more_clean列里存在非字符串类型的数据(比如空值NaN、数字、列表这类),而word_tokenize只能处理字符串,所以触发了类型错误。

给你两种解决思路:

思路一:保留原循环逻辑,增加类型判断

在遍历的时候先检查每个元素是不是字符串,不是的话直接跳过:

word_dict = {}
for sentence in df['more_clean']:
    # 跳过非字符串类型的数据
    if not isinstance(sentence, str):
        continue
    word_token = word_tokenize(sentence)
    for j in word_token:
        # 用get方法简化计数逻辑
        word_dict[j] = word_dict.get(j, 0) + 1

思路二:用pandas+Counter简化代码

这种写法更高效,适合处理DataFrame数据:

from collections import Counter

# 1. 去掉空值 2. 强制转成字符串 3. 分词 4. 把分词结果展开成单个词的列表
token_list = df['more_clean'].dropna().astype(str).apply(word_tokenize).explode().tolist()
# 用Counter统计词频,直接转成字典
word_dict = dict(Counter(token_list))

另外提醒下:尽量别用range(len(df['more_clean']))这种索引遍历的方式,直接遍历列元素更简洁也不容易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:42:28