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

求助:基于Pandas/Python实现数据聚合与大小分级逻辑

Pandas 数据分组处理实现方案

核心实现代码

我们可以利用 Pandas 的分组(groupby)功能结合自定义处理函数完成需求,无需手动循环:

import pandas as pd

# 示例数据
df = pd.DataFrame({'priority': [1, 1, 1, 2, 2, 3],
                  'db_name': ['corp', 'corp', 'corp', 'sales', 'sales', 'market'],
                   'tbl_name': ['c_tbl1', 'c_tbl1', 'c_tbl1', 's_tbl1', 's_tbl2', 'm_tbl1'],
                   'partition': ['202301', '202302', '202303', '202301', '202302', '202301'],
                   'size_gb': [5, 5, 10, 1, 2, 3]})

def process_group(group):
    # 提取分组的基础标识信息
    priority = group['priority'].iloc[0]
    db = group['db_name'].iloc[0]
    tbl = group['tbl_name'].iloc[0]
    
    if priority == 1:
        # 优先级1分组:输出单个条目,t_size固定为XL
        return pd.DataFrame({
            'priority': [priority],
            'db_name': [db],
            'tbl_name': [tbl],
            'total_size_gb': [group['size_gb'].sum()],
            't_size': ['XL']
        })
    else:
        # 其他优先级:计算总大小后判断t_size
        total_size = group['size_gb'].sum()
        t_size = 'S' if total_size < 3 else 'M'
        return pd.DataFrame({
            'priority': [priority],
            'db_name': [db],
            'tbl_name': [tbl],
            'total_size_gb': [total_size],
            't_size': [t_size]
        })

# 按指定维度分组并应用处理逻辑
result = df.groupby(['priority', 'db_name', 'tbl_name'], as_index=False).apply(process_group).reset_index(drop=True)
print(result)

代码逻辑说明

  • 分组规则:按priority、db_name、tbl_name三个字段分组,确保同优先级、同库同表的条目被归为一组。
  • 优先级1处理:直接生成单个汇总条目,计算组内总大小,t_size固定标记为XL。
  • 其他优先级处理:先计算组内总大小,根据总大小是否小于3GB,分别标记为S或M。
  • 结果整合:通过apply执行分组逻辑,再用reset_index将各组结果合并为最终的结构化DataFrame。

运行输出结果

priority db_name tbl_name  total_size_gb t_size
0         1    corp   c_tbl1             20     XL
1         2    sales   s_tbl1              1      S
2         2    sales   s_tbl2              2      S
3         3   market   m_tbl1              3      M

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:02:39