【发布时间】:2020-02-02 20:29:07
【问题描述】:
我有一个数据框 df,它有 3 列。 A 列和 B 列是一些字符串。 C 列是一个数值变量。 Dataframe
我想通过将其传递给 CountVectorizer 将其转换为特征矩阵。
我将我的 countVectorizer 定义为:
cv = CountVectorizer(input='content', encoding='iso-8859-1',
decode_error='ignore', analyzer='word',
ngram_range=(1), tokenizer=my_tokenizer, stop_words='english',
binary=True)
接下来,我将整个数据帧传递给 cv.fit_transform(df),但它不起作用。 我收到此错误: 无法解压不可迭代的 int 对象
接下来我将数据框的每一行转换为
sample = pdt_items["A"] + "," + pdt_items["C"].astype(str) + "," + pdt_items["B"]
那我申请
cv_m = sample.apply(lambda row: cv.fit_transform(row))
我仍然得到错误: ValueError:预期可迭代原始文本文档,收到字符串对象。
请让我知道我哪里出错了?或者我是否需要采取其他方法?
【问题讨论】:
-
您需要分享一些数据才能将其设为minimum reproducible example。我们不太了解您的 df 中的内容。
-
@mayosten 我添加了我的数据集的 sn-p 图像。谢谢!
-
datasetname 和 id 是索引。 JFYI。
-
@Shreya 我从我使用 NLP 的经验猜想你想要什么。试试 cv_m = sample.apply(lambda row: cv.fit_transform(row.to_string()))
-
@QuantStats 我收到以下错误 AttributeError: 'str' object has no attribute 'to_string'
标签: python pandas dataframe scikit-learn countvectorizer