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

如何将Pandas中ROI列分箱后统计对应HIT列的计数?

解决Pandas分箱后统计HIT列计数的问题

嘿,我来帮你搞定这个问题!你已经完成了ROI列的分箱操作,接下来只需要把分箱结果和原始数据结合,再做分组统计就能得到每个箱里HIT(0/1)的数量啦,步骤超清晰:

步骤1:把分箱结果添加回原始DataFrame

首先,我们把生成的分箱标签binned_rois作为新列加到raw_df里,这样每一行数据都能对应到自己所属的ROI箱:

raw_df['ROI_bin'] = binned_rois

步骤2:分组统计HIT列的计数

这里给你两种常用的统计方式,按需选择:

方式一:直接统计每个箱内0和1的数量(直观展示)

用groupby结合value_counts,再通过unstack把结果转成更易读的列形式,fill_value=0避免某些箱没有0/1时出现空值:

hit_counts = raw_df.groupby('ROI_bin')['HIT'].value_counts().unstack(fill_value=0)
print(hit_counts)

示例输出:

HIT               0  1
ROI_bin              
(0.999, 2.0]      5  3
(2.0, 4.0]        4  6
(4.0, 6.0]        7  2
(6.0, 8.0]        3  7
(8.0, 10.0]       6  4

方式二:自定义统计指标(比如单独统计1的数量、0的数量、总条数)

如果需要更灵活的统计项,可以用agg方法自定义聚合函数:

hit_summary = raw_df.groupby('ROI_bin').agg(
    hit_count=('HIT', lambda x: (x == 1).sum()),  # 统计HIT=1的数量
    non_hit_count=('HIT', lambda x: (x == 0).sum()),  # 统计HIT=0的数量
    total_records=('HIT', 'count')  # 统计每个箱的总记录数
)
print(hit_summary)

示例输出:

hit_count  non_hit_count  total_records
ROI_bin                                             
(0.999, 2.0]          3              5              8
(2.0, 4.0]            6              4             10
(4.0, 6.0]            2              7              9
(6.0, 8.0]            7              3             10
(8.0, 10.0]           4              6             10

这样就能完美关联每个ROI箱和对应的HIT计数啦,是不是很简单😉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:47:32