news 2026/3/5 5:42:39

Pandas 数据聚合:分组统计与聚合函数应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pandas 数据聚合:分组统计与聚合函数应用

Pandas 数据聚合:分组统计与聚合函数应用

咱们已经并肩走过了 14 天。如果说前几天的筛选和清洗是在做“扫除”,那么今天第 15 天的数据聚合(Aggregation),就是在做“炼金”。

在架构师眼中,原始数据就像是散落在 电科金仓 KingbaseES (KES) 里的散碎银两,虽然有价值,但不够壮观。只有通过聚合,把它们按维度(比如地区、时间、行为类型)揉碎了再重组,你才能看到隐藏在数字背后的业务趋势群体特征。这就是 AI 特征工程里最核心的一环。


壹:聚合的真谛——“拆分-应用-组合”

Pandas 的聚合逻辑遵循经典的Split-Apply-Combine模型。

  1. Split(拆分):根据某个键(Key)把数据切成一堆小方块。
  2. Apply(应用):对每个小方块算个平均值、最大值或者是你自己定义的算法。
  3. Combine(组合):把结果重新拼成一张漂亮的报表。

这其实和咱们搞分布式架构里的MapReduce异曲同工。你要是能理解分布式计算的原理,玩转 Pandas 的groupby简直就是降维打击。


贰:实战:Conda 环境里的“数林聚义”

咱们在KES_AI_Lab环境里正式开搞。如果你在导入数据时卡住了,先确认你的驱动(ksycopg2)是不是在官方下载页面拿到的最新版。

.mean()', showing a clean output of average scores by region]


叁:核心代码:从 KES 业务表到特征画像

假设我们在 电科金仓 KES 存了一张用户消费表,我们需要统计每个地区用户的平均消费、最高频率以及活跃度的波动。

# -*- coding: utf-8 -*-importksycopg2importpandasaspdimportnumpyasnpdefaggregation_lab_kes():print("--- [电科金仓] 维度聚合与特征衍生实战 ---")conn_params="dbname=test user=username password=123456 host=127.0.0.1 port=54321"try:conn=ksycopg2.connect(conn_params)# 1. 抽取业务数据 (用户ID, 业务标签, 数值指标)query="SELECT num as user_id, vcb as region, bcb as category FROM test_newtype"df=pd.read_sql(query,conn)# 模拟一些消费数据和活跃时长,这在 AI 模型中是极佳的连续型特征df['spend']=np.random.uniform(10,1000,size=len(df))df['active_hours']=np.random.randint(1,24,size=len(df))# --- 技巧 1:基础聚合 (单一维度的统计) ---# 统计每个地区的平均消费region_mean=df.groupby('region')['spend'].mean()print("\n[地区消费均值]:")print(region_mean)# --- 技巧 2:多函数聚合 (一次性搞定多个指标) ---# 这是架构师最常用的,因为效率最高agg_result=df.groupby('region').agg({'spend':['mean','max'],'active_hours':'sum','user_id':'count'# 相当于 SQL 的 COUNT(*)})# 重命名列名,让它更有“人味儿”agg_result.columns=['平均消费','最高消费','总活跃时长','用户总数']print("\n[多维度聚合报表]:")print(agg_result)# --- 技巧 3:自定义聚合 (处理复杂的业务逻辑) ---# 比如我们想看每个地区消费最高的差值 (Range)defrange_func(x):returnx.max()-x.min()custom_agg=df.groupby('category')['spend'].apply(range_func)print("\n[自定义业务逻辑 - 消费极差]:")print(custom_agg)conn.close()returnagg_resultexceptExceptionase:print(f"聚合计算过程中链路抖动:{e}")if__name__=="__main__":aggregation_lab_kes()

肆:架构师的碎碎念:聚合中的“分寸感”

在深耕 AI 的这些年,我见过太多把groupby玩坏的案例。
有人喜欢把所有的维度都揉在一起做一个巨大的透视表,结果导致内存直接原地爆炸。

从人文的角度看,聚合其实是一种**“舍得”**。为了看到整体的趋势,你必须舍弃掉个体数据的琐碎。一个优秀的架构师知道什么时候该保留细节(微服务、单行记录),什么时候该抽象总结(聚合报表、全局画像)。

我们在使用 电科金仓 KES 时,有些统计可以在数据库端通过GROUP BY完成(利用索引加速);而有些涉及到复杂非线性变换的,则适合放在 Pandas 里。这种**“算力分配”的艺术**,才是资深架构师的真功夫。


结语

今天咱们学会了怎么把散沙聚成塔。但数据不仅仅有横向的类别,还有纵向的时间。


既然聊到聚合,需要我帮你写一个基于“时间窗口”的滚动聚合(Rolling Window Aggregation)脚本吗?这在处理 KES 里的实时金融交易或设备监控数据时是标配。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 22:02:17

嘉立创EDA:自动升级软件下载下来的安装包存放在什么地方

找到嘉立创EDA客户端右上角的小齿轮:点击小齿轮,进入客户端配置界面,默认是自动检查更新:我今天早上通过自动检查更新,更新到了最新的客户端版本。 更新完成后,可以将自动下载下来的安装包删除。 自动下来的…

作者头像 李华
网站建设 2026/3/4 3:56:37

SOC一级分析师告警分诊失效:企业网络安全的核心级风险

SOC一级分析师作为企业安全运营的第一道防线,其告警分诊的核心价值是从海量安全告警中快速筛选真实威胁、分级处置风险、阻断初期攻击链路,一旦该环节失效,并非单一岗位的操作问题,而是会引发企业安全体系的连锁坍塌,直…

作者头像 李华
网站建设 2026/3/5 20:17:16

Java springboot基于微信小程序的宠物服务预约系统宠物用品(源码+文档+运行视频+讲解视频)

文章目录 系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈 后端框架springboot前端框架vue持久层框架MyBaitsPlus微信小程序介绍系统测试 四、代码参考 源码获取 目的 基于微信小程序的宠物服务预约系统,专注于宠物用品销售与服务预约&#…

作者头像 李华
网站建设 2026/3/4 3:56:33

AI写论文有妙招,这4款AI论文写作工具,为你的论文质量保驾护航!

四款实测AI论文写作工具推荐 还在为撰写学术期刊论文感到烦恼吗?面对大量的文献资料、复杂的格式要求以及一遍又一遍的修改,低效率几乎成了学术圈的普遍现象。别着急,接下来将为您推荐四款经过实测的AI论文写作工具,这些工具可以…

作者头像 李华
网站建设 2026/3/4 21:58:51

‌AI透明度报告:测试员如何给黑箱模型做X光?‌

当测试遇见黑箱 医疗AI将患者炎症误判为癌症却无法解释原因,金融风控系统因邮政编码特征歧视优质客户——这些因模型不透明引发的危机,正将测试工程师推向人工智能质量保障的前线。本文构建从理论到落地的XAI测试框架,为测试团队提供可复用的…

作者头像 李华
网站建设 2026/3/4 3:56:30

Claude Code Slash Commands:从“提问者“到“指令设计师“的蜕变

文章目录20 个内置指令,这 4 个就够了1. 会话与上下文管理/clear - 重置上下文/compact [instructions] - 智能压缩/rewind [Esc Esc] - 时光回溯/memory - 持久化记忆2. 环境与配置/config - 可视化配置界面/permissions - 权限管理(工具白名单&#xf…

作者头像 李华