Python学习笔记·第23天:Pandas进阶——数据统计、排序与分组聚合实战 2026年6月27日 Python学习笔记Pandas进阶数据统计、排序与分组聚合一、查看数据特征和统计信息1.1 describe()一键看所有统计指标print(df[交易额].describe())大白话这个函数能一次性告诉你总共多少条数据、平均值是多少、最小值最大值、中间值等等。相当于Excel里选中一列然后看状态栏那一排统计信息。1.2 其他常用统计函数df[交易额].quantile([0,0.25,0.5,0.75,1.0])# 四分位数df[交易额].median()# 中值df[交易额].max()# 最大值df[交易额].min()# 最小值df[日期].max()# 最后一个日期df[工号].min()# 最小的工号1.3 找出最大/最小值所在的行# 最小交易额所在的行下标indexdf[交易额].idxmin()print(df.loc[index,交易额])# 最大交易额所在的行下标indexdf[交易额].idxmax()print(df.loc[index,交易额])大白话idxmin()和idxmax()回答的问题是“最小值/最大值在哪一行”返回的是一个行下标然后用.loc取出那一行的数据。1.4 取出最大/最小的几条记录df.nsmallest(3,交易额)# 交易额最小的3条df.nlargest(5,交易额)# 交易额最大的5条大白话类似Excel的“排序后取前N条”一行代码搞定不用先排序再切片。二、数据的排序2.1 按值排序 sort_values()# 单列排序按交易额降序df.sort_values(by交易额,ascendingFalse)# 多列排序先按交易额降序如果相等再按工号升序df.sort_values(by[交易额,工号],ascending[False,True])# 把缺失值放在最后df.sort_values(by工号,na_positionlast)核心参数参数含义大白话by按哪个列排“按什么排”ascendingTrue升序/False降序“从小到大还是从大到小”ascending[False, True]多列可以指定不同顺序“第一列从大到小第二列从小到大”na_position缺失值放哪“空值排最后还是最前”2.2 按索引排序 sort_index()# 按列名升序排序df.sort_index(axis1,ascendingTrue)大白话不按数据大小排而是按行标签或列名字排。axis0按行索引排axis1按列名排。三、分组与聚合核心3.1 什么是分组聚合大白话就是Excel的“分类汇总”。把数据按某个类别分成几组比如按员工姓名分组然后对每组分别计算求和、求平均、计数等。三步理解分组按谁分by姓名取列对哪列算[交易额]聚合怎么算.sum().mean().count()3.2 基础分组聚合# 不同时段的销售总额df.groupby(by时段)[交易额].sum()# 各柜台的销售总额df.groupby(by柜台)[交易额].sum()# 每个员工交易额平均值df.groupby(by姓名)[交易额].mean().round(2).sort_values()# 每个员工上班的次数df.groupby(by姓名)[日期].count()3.3 按多个维度分组# 每个员工在不同时段的交易额df.groupby(by[姓名,时段])[交易额].sum()大白话同时按“姓名”和“时段”分组结果是“张三上午卖了多少、张三下午卖了多少、李四上午卖了多少……”。3.4 更灵活的分组方式# 根据lambda表达式对索引处理后再分组df.groupby(bylambdanum:num%5)[交易额].sum()# 索引除以5余数相同的分到一组# 根据字典指定分组df.groupby(by{7:下标为7的行,35:下标为35的行})[交易额].sum()3.5 agg()同时对一列做多种计算# 对交易额同时求和、求平均、求最小、求中值df.agg({交易额:[sum,mean,min,median],日期:[min,max]})# 对分组结果进行多种聚合df.groupby(by姓名).agg([max,min,median])大白话agg()让你一次性对数据做多种计算不用写多行代码。比如对交易额同时求“总和、平均、最小、中值”一行搞定。今日核心总结统计查看三件套describe()一键看全部统计指标quantile()看数据的分布四分位数idxmin()/idxmax()找最值在哪一行排序sort_values(by列名)按数据大小排sort_index()按行标签或列名排多列排序可以指定不同的升序降序分组聚合工作核心套路分组 → 取列 → 计算groupby(列名)[要算的列].sum()分类求和groupby(列名)[要算的列].mean()分类求平均agg([sum, mean, min])一次性做多种计算分析思路以后遇到任何数据分析问题问自己三个问题按什么分类by对哪个指标算选哪一列用什么方式算求和平均计数这就是数据分析的核心流程分组 → 聚合 → 找规律。注:已经使用DeepSeek进行整理精简核心内容些许不理解的配合个人笔记进行理解。