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

Pandas查找累计值超阈值对应level并存储为嵌套列表的方法

Pandas分组获取累计金额达阈值对应level值实现方案

核心思路

  • 按user_id、profile、item三个维度拆分数据组
  • 筛选出所有累计金额达到/超过阈值的记录,每个分组取排序后第一条符合条件的记录(即刚好达标的那条)
  • 最终按用户维度聚合对应level值,转换为嵌套列表格式

完整实现代码

import pandas as pd

# 阈值可根据实际需求修改
threshold = 40

# 若原始数据未按level升序排列,先执行排序保证取到首次达标的记录
df = df.sort_values(by=['user_id', 'profile', 'item', 'level']).reset_index(drop=True)

result = (
    # 先过滤出所有达标的记录
    df[df['cumulative_amount'] >= threshold]
    # 按三个维度分组,取每组第一条达标记录
    .groupby(['user_id', 'profile', 'item'], as_index=False)
    .first()
    # 按用户维度聚合level为列表
    .groupby('user_id')['level']
    .agg(list)
    # 转换为最终需要的嵌套列表
    .tolist()
)

结果验证

针对提供的样例数据,执行上述代码后result的输出为:

[[2, 3, 1, 2], [5, 6, 6, 3]]

完全匹配期望输出格式。

注意事项

  • 必须保证每个(user_id, profile, item)分组内的数据按level从小到大排序,否则可能取到非首次达标的level值
  • 若存在分组始终未达到阈值的情况,上述代码会自动忽略该分组,如果需要保留占位值,可以在分组逻辑中补充缺失值处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:18:24