我有一个数据框,如下所示:
我正在尝试向量化每一行,但仅限于文本列。我写了这段代码:
vectorizerCount = CountVectorizer(stop_words='english')
# tokenize and build vocab
allDataVectorized = allData.apply(vectorizerCount.fit_transform(allData.iloc[:]['headline_text']), axis=1)
错误说:
TypeError :("' csr_matrix'对象不可调用",'发生在索引0')
进行一些研究并尝试进行更改我发现fit_transform函数返回一个scipy.sparse.csr.csr_matrix并且不可调用。
还有其他办法吗?
谢谢!
答案 0 :(得分:1)
您的代码存在许多问题。你可能需要像
这样的东西allDataVectorized = pd.DataFrame(vectorizerCount.fit_transform(allData[['headline_text']]))
allData[['headline_text']])
(带双括号)是一个DataFrame,它转换为numpy 2d数组。
fit_transform
返回csr矩阵。
pd.DataFrame(...)
从csr矩阵创建一个DataFrame。