AttributeError:“系列”对象没有属性“to_coo”

Posted

技术标签:

【中文标题】AttributeError:“系列”对象没有属性“to_coo”【英文标题】:AttributeError: 'Series' object has no attribute 'to_coo' 【发布时间】:2020-11-11 05:39:41 【问题描述】:

我正在尝试使用 sklearn 模块中的朴素贝叶斯分类器来分类电影评论是否是正面的。我使用一袋词作为每条评论的特征,并使用一个带有评论附加情感分数的大型数据集。

df_bows = pd.DataFrame.from_records(bag_of_words)
df_bows = df_bows.fillna(0).astype(int)

这段代码创建了一个如下所示的 pandas 数据框:

   The  Rock  is  destined  to  ...  Staggeringly  ’  ve  muttering  dissing
0    1     1   1         1   2  ...             0  0   0          0        0
1    2     0   1         0   0  ...             0  0   0          0        0
2    0     0   0         0   0  ...             0  0   0          0        0
3    0     0   1         0   4  ...             0  0   0          0        0
4    0     0   0         0   0  ...             0  0   0          0        0

然后我尝试使用此代码将这个数据框与每条评论的情绪相匹配

nb = MultinomialNB()
nb = nb.fit(df_bows, movies.sentiment > 0)

但是我收到一个错误提示

AttributeError: 'Series' object has no attribute 'to_coo'

这就是 df 电影的样子。

    sentiment                                               text
id                                                              
1    2.266667  The Rock is destined to be the 21st Century's ...
2    3.533333  The gorgeously elaborate continuation of ''The...
3   -0.600000                     Effective but too tepid biopic
4    1.466667  If you sometimes like to go to the movies to h...
5    1.733333  Emerges as something rare, an issue movie that...

你能帮忙吗?

【问题讨论】:

假设电影是一个带有情感列的数据框,这应该可以工作,你能展示movies.sentiment的样子吗? @EzerK 我已编辑问题以包含电影数据框 似乎MultinomialNBdf 有问题,您是否尝试改为传递值?例如nb.fit(df_bows.values, movies.sentiment > 0) 另一个想法是只在前几行运行以查看错误发生的位置 【参考方案1】:

当您尝试拟合 MultinomialNB 模型时,sklearn 的例程会检查输入 df_bows 是否稀疏。如果是,就像我们的例子一样,需要将数据框的类型更改为'Sparse'。这是我修复它的方法:

df_bows = pd.DataFrame.from_records(bag_of_words)

# Keep NaN values and convert to Sparse type
sparse_bows = df_bows.astype('Sparse')

nb = nb.fit(sparse_bows, movies['sentiment'] > 0)

Pandas 文档链接:pandas.Series.sparse.to_coo

【讨论】:

以上是关于AttributeError:“系列”对象没有属性“to_coo”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“系列”对象没有属性“to_coo”

Python AttributeError:“系列”对象在使用 Windows 而非 Mac 时没有属性“to_json”

将数据从 JSON 导入 django AttributeError:“WSGIRequest”对象没有属性“数据”

AttributeError: 'RDD' 对象没有属性 'show'

AttributeError:“NumpyArrayIterator”对象没有属性“类”

AttributeError:'list' 对象没有属性 'size'