影刀RPA 数据统计基础:均值中位数与分位数

发布时间:2026/9/28 6:15:38

影刀RPA 数据统计基础:均值中位数与分位数
影刀RPA 数据统计基础均值中位数与分位数作者林焱什么情况用什么拿到一批数据需要快速了解数据概况——平均工资多少、中位数是多少、最高的10%和最低的10%差多少、数据是否偏斜。在影刀RPA里用pandas的统计函数可以一键生成描述性统计帮你在做报表前先理解数据。适用场景数据分析前概览、薪资/价格分布分析、业绩评估、异常值辅助判断、数据质量检查。怎么做拼多多店群自动化报活动上架描述性统计importpandasaspdimportnumpyasnp dfpd.read_excel(rC:\Data\employee.xlsx)# 一键描述性统计数值列print(df.describe())# 输出count, mean, std, min, 25%, 50%, 75%, max# 包含分类列print(df.describe(includeall))# 单列统计print(f平均工资:{df[工资].mean():.2f})print(f工资中位数:{df[工资].median():.2f})print(f工资标准差:{df[工资].std():.2f})print(f最高工资:{df[工资].max():.2f})print(f最低工资:{df[工资].min():.2f})print(f工资范围:{df[工资].max()-df[工资].min():.2f})分位数分析# 四分位数Q1df[工资].quantile(0.25)# 下四分位数Q2df[工资].quantile(0.50)# 中位数Q3df[工资].quantile(0.75)# 上四分位数IQRQ3-Q1# 四分位距print(fQ125%:{Q1:.2f})print(fQ250%:{Q2:.2f})print(fQ375%:{Q3:.2f})print(fIQR:{IQR:.2f})![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/402b286e60004c1b882ed5e39d799ef6.png#pic_center)# 自定义分位数percentiles[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]forpinpercentiles:print(f{int(p*100)}%分位:{df[工资].quantile(p):.2f})# 十分位数deciles[df[工资].quantile(i/10)foriinrange(1,10)]分组统计# 按部门统计工资dept_statsdf.groupby(部门)[工资].agg([count,mean,median,std,min,max]).round(2)# 添加分位数dept_stats[Q1]df.groupby(部门)[工资].quantile(0.25).round(2)dept_stats[Q3]df.groupby(部门)[工资].quantile(0.75).round(2)print(dept_stats)离散程度分析defanalyze_distribution(df,column):分析数据分布datadf[column].dropna()stats{均值:data.mean(),中位数:data.median(),标准差:data.std(),方差:data.var(),最小值:data.min(),最大值:data.max(),极差:data.max()-data.min(),变异系数(CV):data.std()/data.mean()ifdata.mean()!0else0,偏度:data.skew(),峰度:data.kurtosis(),Q1:data.quantile(0.25),Q3:data.quantile(0.75),IQR:data.quantile(0.75)-data.quantile(0.25),}# 解读print(f{column}分布分析 )forkey,valinstats.items():print(f{key}:{val:.2f})![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b4bc918cb5a64eef8cd7c3ffc795d194.png#pic_center)print(\n 分布解读 )ifstats[偏度]0.5:print( → 右偏分布大部分值偏小少数大值拉高均值)elifstats[偏度]-0.5:print( → 左偏分布大部分值偏大少数小值拉低均值)else:print( → 近似对称分布)ifstats[均值]stats[中位数]:print(f → 均值({stats[均值]:.0f}) 中位数({stats[中位数]:.0f})存在高值拉动)cvstats[变异系数(CV)]ifcv0.5:print(f → 变异系数{cv:.2f}数据离散程度高)elifcv0.2:print(f → 变异系数{cv:.2f}数据较集中)returnstats# 使用analyze_distribution(df,工资)生成统计摘要报表defgenerate_stats_report(df,output_path):生成统计摘要报表withpd.ExcelWriter(output_path,engineopenpyxl)aswriter:# 1. 全局统计numeric_colsdf.select_dtypes(include[np.number]).columns global_statsdf[numeric_cols].describe().T global_stats[变异系数](global_stats[std]/global_stats[mean]).round(3)global_stats[偏度]df[numeric_cols].skew().round(3)global_stats[峰度]df[numeric_cols].kurtosis().round(3)global_stats.to_excel(writer,sheet_name全局统计)# 2. 分组统计if部门indf.columns:group_statsdf.groupby(部门)[numeric_cols].agg([count,mean,median,std]).round(2)group_stats.to_excel(writer,sheet_name分组统计)# 3. 分位数表percentiles[0.05,0.1,0.25,0.5,0.75,0.9,0.95]quantile_data{}forcolinnumeric_cols:quantile_data[col]{f{int(p*100)}%:df[col].quantile(p)forpinpercentiles}quantile_dfpd.DataFrame(quantile_data).round(2)quantile_df.to_excel(writer,sheet_name分位数)# 4. 分类变量频率cat_colsdf.select_dtypes(include[object]).columnsforcolincat_cols[:5]:# 最多5个分类列freqdf[col].value_counts().head(20)freq_dfpd.DataFrame({值:freq.index,数量:freq.values})freq_df[占比](freq_df[数量]/len(df)*100).round(2).astype(str)%sheet_namef频率_{col}[:31]# Excel sheet名最长31字符freq_df.to_excel(writer,sheet_namesheet_name,indexFalse)returnoutput_path# 使用generate_stats_report(df,rC:\Data\stats_report.xlsx)有什么坑TEMU店群矩阵自动化运营核价报活动坑1均值受异常值影响大# 问题9个人月薪1万1个月薪100万均值10.9万不能代表真实水平# 解决用中位数print(f均值:{df[工资].mean()})# 109000print(f中位数:{df[工资].median()})# 10000 ← 更能代表真实水平# 或用截尾均值去掉最高最低5%后求均值fromscipy.statsimporttrim_mean trimmedtrim_mean(df[工资].dropna(),proportiontocut0.05)坑2std()对空值的处理# 问题std()默认跳过空值但结果可能不准df[工资].std()# 自动跳过NaN# 如果整组只有一个值df.groupby(部门)[工资].std()# 某部门只有1人stdNaN# 解决填充0或标注dept_stddf.groupby(部门)[工资].std().fillna(0)坑3分位数计算方法不同# pandas默认用linear插值法df[工资].quantile(0.5)# 默认linear# 其他方法结果不同df[工资].quantile(0.5,interpolationlower)# 取较低值df[工资].quantile(0.5,interpolationhigher)# 取较高值![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f4009493d88745ee9fd3bff601987064.png#pic_center)df[工资].quantile(0.5,interpolationnearest)# 取最近值# 和Excel的QUARTILE函数结果可能不同# Excel用的是另一种插值方法坑4describe()对分类列无统计意义# 问题对分类列算mean、std没有意义df.describe()# 只统计数值列自动跳过文本列# 查看分类列用df.describe(include[object])# 输出count, unique, top众数, freq众数频率坑5分组统计后内存膨胀# 问题对多列做多种聚合结果表列数暴增resultdf.groupby(部门).agg({工资:[mean,median,std,min,max,count],年龄:[mean,median,std],工龄:[mean,median,max]})# 列数 6 3 2 11列 × N个部门![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/80b1cf15bc7a492b9ed8291bf8edd5a8.png#pic_center)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2f04b5fa660b48bfb519ef268db2deb7.png#pic_center)# 解决分Sheet写入或用命名聚合resultdf.groupby(部门).agg(工资均值(工资,mean),工资中位(工资,median),工资标准差(工资,std),年龄均值(年龄,mean),).round(2).reset_index()

相关新闻

Ansible Playbook 基础与流程控制--006篇

Ansible Playbook 基础与流程控制--006篇

2026/8/25 15:30:48

文章目录 交付一:企业级 Nginx Role —— HTTPS & 证书管理增强版 ✅ 一、设计目标(企业视角) 二、新增目录结构 三、defaults/main.yml(对外暴露) 四、tasks/ssl.yml(核心逻辑) 五、templates/ssl_params.conf.j2(安全复用) 六、增强后的 vhost.conf.j2(HTTP/HT…

macOS与Android文件传输终极指南:OpenMTP让你的跨设备文件管理飞起来!

macOS与Android文件传输终极指南:OpenMTP让你的跨设备文件管理飞起来!

2026/8/23 0:04:06

macOS与Android文件传输终极指南:OpenMTP让你的跨设备文件管理飞起来! 【免费下载链接】openmtp OpenMTP - Advanced Android File Transfer Application for macOS 项目地址: https://gitcode.com/gh_mirrors/op/openmtp 还在为macOS和Android设…

TBAnnotationClustering用户指南:从零开始构建高效地图应用

TBAnnotationClustering用户指南:从零开始构建高效地图应用

2026/8/23 0:04:06

TBAnnotationClustering用户指南:从零开始构建高效地图应用 【免费下载链接】TBAnnotationClustering Example App: How To Efficiently Display Large Amounts of Data on iOS Maps 项目地址: https://gitcode.com/gh_mirrors/tb/TBAnnotationClustering TB…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/28 16:01:49

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/28 16:01:48

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/28 16:01:48

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…