You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas对独热编码的电影类型列批量分组统计评分次数?

解决方法:一次性统计所有类型的评分次数

当然可以一次性选中所有类型列,而且这个方法完全能处理一部电影属于多种类型的情况,下面是具体的实现步骤:

1. 自动识别所有类型列

首先我们不需要手动输入所有类型列名,可以通过排除非类型列(MovieID和rating)来自动获取:

# 获取所有类型列(排除MovieID和rating)
genre_columns = data.columns.difference(['MovieID', 'rating'])

2. 统计各类型的评分次数

因为你的数据是独热编码格式(1代表电影属于该类型,0代表不属于),所以每个类型列的求和结果就是该类型被评分的次数——每一个1都对应一部有评分的该类型电影,而且如果一部电影属于多个类型,每个对应类型的计数都会加1,完美解决多类型电影的统计问题。

具体代码如下:

# 对每个类型列求和,得到评分次数
number_of_ratings = data[genre_columns].sum().reset_index()
# 重命名列名以匹配预期输出
number_of_ratings.columns = ['Genre', 'Number of times rated']

验证你的示例数据

用你提供的DataFrame运行这段代码,会得到完全符合预期的结果:

GenreNumber of times rated
Action1
Adventure0
Animation1
Childrens2
Comedy3
Crime1
Documentary0

额外处理:如果存在无评分的电影

如果你的数据中有rating为空的行(即电影有类型但未被评分),可以先过滤掉这些行再统计:

# 过滤掉没有评分的记录
filtered_data = data.dropna(subset=['rating'])
# 再进行统计
number_of_ratings = filtered_data[genre_columns].sum().reset_index()
number_of_ratings.columns = ['Genre', 'Number of times rated']

内容的提问来源于stack exchange,提问作者Rulli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 11:27:39