Python OneHotEncoder在数据预处理期间导致类型错误

Python OneHotEncoder在数据预处理期间导致类型错误,python,pandas,numpy,keras,Python,Pandas,Numpy,Keras,我正在开发一个意向分类服务,但是,我在下面遇到了一个错误。 我也跟着,但我不知道如何解决这个问题 Traceback (most recent call last): raise TypeError("argument must be a string or number") TypeError: argument must be a string or number 下面是我的代码。这是我在上面提到的那篇文章 def最大长度(字): 返回len(最大值(单词,关键字=len)) d

我正在开发一个意向分类服务,但是,我在下面遇到了一个错误。 我也跟着,但我不知道如何解决这个问题

Traceback (most recent call last):
    raise TypeError("argument must be a string or number")
TypeError: argument must be a string or number
下面是我的代码。这是我在上面提到的那篇文章


def最大长度(字):
返回len(最大值(单词,关键字=len))
def编码_文件(标记、文字):
返回标记。文本\u到\u序列(单词)
def填充文档(编码文档,最大长度):
返回pad\u序列(编码的文档,maxlen=max\u长度,padding=“post”)
def one_hot(编码):
o=OneHotEncoder(稀疏=False)
返回o.fit_变换(编码)
意图,唯一的意图,句子=加载数据集()
打印(句子[:5])
干净的单词=干净的句子(句子)
打印(len(干净的单词))
打印(已清除的单词[:2])
word\u标记器=创建\u标记器(已清理的\u单词)
vocab_size=len(单词标记器.单词索引)+1
最大长度=最大长度(干净的单词)
打印(“声音大小=%d,最大长度=%d”%(声音大小,最大长度))
encoded_doc=encoding_doc(单词标记器、清理单词)
填充文档=填充文档(编码文档,最大长度)
打印(填充文档[:5])
打印(“填充文档的形状=”,填充文档的形状)
输出\标记器=创建\标记器(唯一\目的)
打印(输出\u标记器.word\u索引)
编码的\输出=编码\文档(输出\标记器,意图)
encoded_output=np.数组(encoded_output).重塑(-1,1)
输出一热=一热(编码输出)
打印(输出一个热)

您有一个
类型错误
,这意味着您正在转换的数据中的值不是预期的类型,在这种情况下,它不是字符串或数字。你能检查一下数据吗?我怀疑您在某个地方缺少一个值,例如a
NaN
@k88,这非常准确!然后我需要删除Thx的NaN值commenting@k88菲尔娜不工作了。我认为数据有问题。感谢您再次发表评论,以发现导致异常的行。这样做的一种方法是在列中循环并打印每个单元格的类型,可能存在一些容易被忽略的类型不一致。请注意,
fillna
返回一个数据帧,因此您必须将其存储到变量中(或覆盖当前变量)。或者,您可以使用arg
inplace=True
。否则,您仍将使用缺少值的数据帧。