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

如何用Pandas统计不同区间内的行数及Buy列1的数量?

高效实现Pandas区间统计方案

核心思路

使用pd.cut()对Est列进行区间划分,再通过groupby()结合agg()一次性完成分组统计,相比手动筛选的方式更简洁高效,代码可读性也更强。

完整实现代码

import pandas as pd

df = pd.DataFrame({
    'Est': [1.18,1.83,2.08,2.30,2.45,3.21,3.26,3.54,3.87,4.58,4.59,4.98],
    'Buy': [0,1,1,1,0,1,1,0,1,0,0,1]
})

# 定义目标区间边界
bins = [1, 2, 3, 4, 5]
# 分组并聚合统计
result = df.groupby(pd.cut(df['Est'], bins=bins)).agg(
    A=('Est', 'count'),  # 统计区间内的总行数
    B=('Buy', 'sum')     # 统计区间内Buy=1的数量(sum直接得到1的个数)
).reset_index(drop=True)

print(result)

关键步骤说明

  • 区间划分:pd.cut(df['Est'], bins=bins)会将Est的值按[1,2)、[2,3)、[3,4)、[4,5)的区间分类(默认右闭左开,刚好匹配需求的区间范围),生成的分类对象作为分组键。
  • 聚合统计:agg()方法可以同时指定多个统计规则,count用于统计每个区间的总行数,sum用于统计Buy列中1的数量(因为0求和不贡献数值,结果就是1的个数)。
  • 索引重置:reset_index(drop=True)移除分组产生的区间索引,生成符合预期的整数索引。

输出结果

A  B
0  2  1
1  3  2
2  4  3
3  3  1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:45:42