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

基于Price列指定区间对Revenue列聚合及交易数统计

实现方法

这其实是Pandas分组聚合的典型场景,用pd.cut()配合groupby().agg()就能轻松同时获取你要的交易数和Revenue总和,直接给你完整的代码方案:

import pandas as pd

# 假设你的DataFrame名为df,包含Price和Revenue列
# 1. 用pd.cut将Price划分到指定区间
price_groups = pd.cut(df['Price'], bins=[5, 10, 15])

# 2. 按区间分组,同时聚合交易数和Revenue总和
summary = df.groupby(price_groups).agg(
    交易数=('Price', 'size'),  # size统计每组的行数(即交易数量)
    总营收=('Revenue', 'sum')   # sum计算每组的Revenue总和
).reset_index()

# 查看结果
print(summary)

关键细节说明:

  • 区间划分逻辑:pd.cut()默认是左闭右开的区间,也就是[5,10)、[10,15),如果你的数据里有等于15的Price值,会被分到NaN组里。如果要包含15或者更大的值,可以把bins改成[5,10,15, float('inf')],这样最后一个区间就是[15, ∞)。
  • 交易数统计:用size而不是count是因为size会统计每组的所有行数,哪怕Price有缺失值也会算进去;如果你的Price列没有缺失值,count结果也一样。
  • 自定义区间标签:如果觉得默认的区间格式不够直观,可以给pd.cut()加labels参数自定义名称:
    price_groups = pd.cut(df['Price'], bins=[5, 10, 15], labels=['5-10元', '10-15元'])
    
  • 重置索引:reset_index()是把分组用的区间从索引转为普通列,这样结果的结构更规整,方便后续分析或导出。

举个例子,假设你的df数据是:

PriceRevenue
6100
9200
12150
14300

运行代码后得到的summary会是:

Price交易数总营收
(5, 10]2300
(10, 15]2450

(注:这里显示的是左开右闭,因为Pandas默认的区间表示方式,实际划分逻辑是左闭右开,你可以通过include_lowest=True参数调整为左闭右闭,比如pd.cut(df['Price'], bins=[5,10,15], include_lowest=True),这时第一个区间会是[5,10])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:37:38