如何将 CountVectorizer 用于聚合数据?

How can I use CountVectorizer with aggregated data?

我正在 goodbooks-10k dataset 开发推荐系统。我想用书的标签来做推荐。书的标签以聚合的方式出现——对于每本书和每个标签,都有一行包含书名、标签名称以及该标签在这本书中出现的次数。 数据集如下所示:

我想使用这些信息来构建标签的词袋表示,其中对于每个标签,我都有一个列,其中包含该标签在给定书中出现的次数。

用 pandas 实现这个的正确方法是什么?

提前致谢!

您可以使用pandas.pivot_table

示例数据框:

df= pd.DataFrame({"book_id": [1,1,2,2,3], "tag_id": [100, 120, 130, 140, 150], "tag_count": [100, 200, 300, 400, 500]})

# df

#   book_id tag_id  tag_count
#  0    1    100    100
#  1    1    120    200
#  2    2    130    300
#  3    2    140    400
#  4    3    150    500
df.pivot_table(values="tag_count", index="book_id", columns="tag_id", aggfunc="sum", fill_value=0)

输出:

# tag_id    100 120 130 140 150
# book_id                   
#  1    100 200 0   0   0
#  2    0   0   300 400 0
#  3    0   0   0   0   500