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

在Pandas DataFrame中按条件统计各类别根帖与评论的出现次数

嘿,这个分类统计需求很常见,我给你两种实用的实现方法,都能轻松得到每个类别下根帖和评论的数量:

方法一:用groupby + agg自定义统计

这种方法灵活性高,能直接指定要统计的两个条件:

import pandas as pd

# 按category分组,分别计算根帖(depth=0)和评论(depth>0)的数量
stats_df = cat_df.groupby('category').agg(
    根帖数量=('depth', lambda col: (col == 0).sum()),
    评论数量=('depth', lambda col: (col > 0).sum())
).reset_index()

# 可选:添加总数列,和你之前用value_counts得到的结果对应
stats_df['总数量'] = stats_df['根帖数量'] + stats_df['评论数量']

# 查看前15个类别的统计结果
print(stats_df.head(15))

这段代码的逻辑很清晰:先按category分组,然后对每个组的depth列用lambda函数分别统计符合条件的行数,最后reset_index把分组索引变回普通列,方便查看。

方法二:用pd.crosstab快速生成交叉统计

如果想要更简洁的写法,交叉表crosstab是绝佳选择:

# 先把depth转换成根帖/评论的标签,再生成交叉表
stats_cross = pd.crosstab(
    index=cat_df['category'],
    columns=cat_df['depth'].map(lambda x: '根帖' if x == 0 else '评论')
)

# 同样可以添加总数列
stats_cross['总数量'] = stats_cross.sum(axis=1)

print(stats_cross.head(15))

crosstab会自动帮你统计每个类别下,根帖和评论各自的数量,输出格式是行列清晰的表格,非常直观。

两种方法得到的结果都能和你之前用value_counts()得到的总数量完全对应,你可以根据自己的习惯选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:17:54