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

pandas实现同时基于genre与独热编码分类列的value_counts()统计

解决方案

你之前的代码丢失genre维度是因为提前删除了genre列,只要将genre保留为分组维度即可实现关联统计,以下是两种常用的统计形式适配不同使用需求:

形式1:宽表格式(按体裁分组,各分类计数为列)

每行对应一个体裁,每列对应一个分类,数值为该体裁下属于对应分类的文本总数:

# 丢弃不需要的text列后按genre分组,对所有分类列求和
genre_category_count = df.drop(columns='text').groupby('genre').sum()

如果需要按总计数排序,可以额外对行/列的求和结果排序。

形式2:长表格式(体裁+分类为维度,更接近value_counts的使用习惯)

每行对应一个「体裁+分类」的组合,单列展示对应计数,支持直接排序:

count_result = (
    df.drop(columns='text')
    # 保留genre列,将所有分类独热列转为长表格式
    .melt(id_vars='genre', var_name='category', value_name='is_match')
    # 过滤出归属对应分类的记录
    .query('is_match == 1')
    # 按体裁和分类分组统计数量
    .groupby(['genre', 'category'], as_index=False)
    .size()
    .rename(columns={'size':'count'})
    .sort_values('count', ascending=False)
)

如果你的分类列有统一前缀(比如示例中的category_开头),也可以通过df.filter(like='category_')的方式灵活筛选分类列,避免手动指定列名。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:36:02