资讯动态

数据分析入门:函数计算、绘图与透视分析三大基础方法实战

发布时间:2026/10/15 9:55:28 来源:尧图企业网站定制
数据分析这件事刚入门的时候最容易走偏。我见过太多人一上来就啃机器学习算法结果连手头那张表里有多少缺失值、分布长什么样都说不清楚。其实真正在一线做数据挖掘八成的时间都花在“把数据看懂”这件事上——用函数算一算、画几张图、拉个透视表很多结论就已经浮出水面了。这篇内容我想聊的就是这套最基础但最容易被忽视的分析功底利用函数计算做指标加工用基本绘图函数看分布和趋势再靠透视分析快速定位问题。它不挑工具Excel、Python的pandas、SQL窗口函数都能落地适合刚转行做数据分析的朋友也适合做了几年但一直靠“感觉”看数的老手拿来补课。把这套基础方法练熟你会发现后面无论上多复杂的模型心里都有底。1. 分析基础的整体设计与思路拆解1.1 为什么基础方法才是数据挖掘的地基很多人对“数据挖掘”这四个字有误解觉得它必须跟神经网络、深度学习挂钩。但你去问任何一个真正在业务里做过挖掘的人他们都会告诉你数据挖掘的本质是从数据里找规律而找规律的前提是你能把数据描述清楚。函数计算、基本绘图、透视分析这三样东西恰好对应了描述数据的三个维度——数值维度、视觉维度、结构维度。我打个比方。你要了解一个陌生人会先看他的身高体重数值再看他的长相神态视觉最后通过聊天了解他的性格和关系网结构。数据也一样函数计算告诉你均值、方差、分位数这些“体检指标”绘图函数把数字变成你能一眼看懂的曲线和柱状透视分析则帮你把数据按不同维度切片看清变量之间的关联。这三步走完你才敢说“我大概认识这份数据了”。之所以强调“基础”是因为后面所有高级操作都建立在这上面。特征工程里的分箱本质就是透视分析加函数计算异常检测里的箱线图就是基本绘图函数的直接产物。地基不牢上面盖什么都是空中楼阁。1.2 三类方法的定位与配合关系这三类方法不是孤立的它们在实际分析流程里是交替使用的。我通常的节奏是这样的先跑一遍函数计算拿到数据的整体画像比如有多少行、多少列、数值列的均值中位数、类别列的取值个数然后针对可疑的列画图看分布是不是偏态、有没有离群点接着用透视分析把关键指标按业务维度拆开看看不同群体之间有没有差异。举个具体的场景。假设你拿到一份电商订单表想分析为什么最近销售额下滑。函数计算先告诉你总销售额、订单量的环比变化绘图函数画出近30天的日销售额趋势线你一眼看到某天开始断崖式下跌透视分析再把数据按渠道、按品类拆开发现是某个渠道的订单量骤降。整个过程不到半小时问题定位就完成了。这就是基础方法的威力——快、准、不依赖复杂工具。1.3 工具选型的考量不追求高级追求顺手说到工具我的观点很明确用什么工具取决于你的数据量和协作场景而不是哪个听起来更高级。数据量在几十万行以内Excel的透视表和图表功能完全够用而且拖拽操作直观给非技术同事看也方便。数据量上百万行或者需要重复跑流程那就上Python的pandas加matplotlib代码可复用、可版本管理。如果数据在数据库里直接用SQL的聚合函数加窗口函数做透视效率最高。我见过一些新手明明数据只有几千行非要用Spark结果环境配置花了两天分析本身只用了十分钟。这是典型的工具错配。基础分析阶段降低工具门槛比提升工具性能更重要因为你需要把精力花在理解数据上而不是折腾环境。2. 函数计算的核心细节与实操要点2.1 描述性统计第一批必须算出来的数拿到任何一份数据我建议你先算这几组函数计数类总行数、非空值数、唯一值数、集中趋势类均值、中位数、众数、离散程度类标准差、方差、极差、四分位距、分布形态类偏度、峰度。这些数不需要你背公式但你要能解读它们背后的含义。均值和中位数的差异特别值得关注。如果均值远大于中位数说明数据右偏存在少数极大的值把均值拉高了。比如收入数据均值可能被几个高收入者拉得很高中位数才代表普通人的水平。这时候你用均值做分析就会失真。标准差告诉你数据的波动大小但要注意它对极端值敏感如果数据有离群点四分位距是更稳健的选择。偏度和峰度是很多人忽略的。偏度衡量分布的不对称程度正值表示右尾长负值表示左尾长。峰度衡量分布的尖峭程度正态分布的峰度约为3超额峰度为0峰度大于3说明数据在均值附近更集中、尾部更厚。这两个指标在判断数据是否适合用某些统计方法时很关键。提示算描述性统计时一定要区分“总体”和“样本”。pandas的std()默认算的是样本标准差分母n-1而numpy的std()默认算的是总体标准差分母n。这个差异在数据量小的时候影响很大别搞混了。2.2 分组聚合把整体拆成局部来看描述性统计看的是整体但整体往往会掩盖局部差异。这时候就需要分组聚合函数。核心逻辑是“按某个维度分组对另一个维度做计算”。比如按地区分组算平均客单价按月份分组算总销量。分组聚合有几个容易踩的坑。第一个是分组键的选择。如果你按一个高基数的列分组比如用户ID结果会有成千上万行根本看不过来。通常要选基数适中、业务含义明确的列作为分组键比如省份、品类、渠道。第二个是聚合函数的选择。求和适合总量指标均值适合比率指标计数适合频次指标。用错了会得出荒谬的结论比如把“平均单价”再求平均这在数学上是不对的应该用总销售额除以总销量。还有一个进阶技巧是多级分组。比如先按年份分组再按季度分组这样能看到趋势的嵌套结构。在pandas里用groupby传一个列表就能实现在SQL里用GROUP BY多个字段。多级分组的结果通常需要用透视表来展示这就自然过渡到后面的透视分析了。2.3 窗口函数让计算带上“上下文”窗口函数是我认为最被低估的基础方法。它的核心思想是每一行的计算不仅依赖当前行还依赖它周围的一组行。这在计算累计值、移动平均、排名、同比环比时特别有用。举个实际例子。你要算每个月的销售额同比增长率就需要拿到“去年同月”的值。用普通聚合函数做不到因为聚合会把行压缩掉。窗口函数可以在保留每一行的同时把去年同月的值“贴”到当前行旁边然后直接做除法。SQL里的写法是LAG(sales, 12) OVER (ORDER BY month)pandas里用shift(12)配合groupby。移动平均是另一个高频用法。原始数据往往波动很大直接看趋势线会被噪声干扰。算一个7天移动平均曲线立刻平滑趋势就清晰了。窗口大小的选择有讲究太小起不到平滑作用太大又会滞后。一般选业务周期长度比如按天数据选7或30按周数据选4或13。注意窗口函数在数据排序有重复值或缺失值时行为可能不符合预期。用之前先检查排序列有没有重复必要时加一个次级排序键保证顺序稳定。2.4 函数计算中的数据类型陷阱这一条我要单独拎出来讲因为踩坑的人太多了。数值列里混进了字符串、日期列被当成文本、布尔值被当成0和1——这些都会让函数计算出错或者得出错误结果。最常见的场景是从CSV读数据时某个本该是数值的列因为有几个单元格写了“暂无”或“-”整列被识别成字符串。这时候你算均值会报错或者得到一个奇怪的结果。解决办法是在读取时指定类型或者读完后用类型转换函数强制转换转换失败的用缺失值标记。日期列的问题更隐蔽。如果日期被存成“20240101”这样的整数你直接做减法得到的是数字差不是天数差。必须先转成日期类型。反过来如果日期被存成字符串“2024-01-01”排序时是按字典序排的大多数情况下没问题但跨年跨月时可能出错。任何涉及时间的计算第一步永远是确认时间列的类型正确。3. 基本绘图函数的实战应用3.1 选对图表类型比调样式重要一百倍我见过太多人把时间花在调颜色、改字体上结果图表类型选错了信息完全传达不出来。图表类型的选择取决于你的数据关系和你想表达的重点。分析目的推荐图表不推荐原因看趋势变化折线图柱状图折线连续性强趋势一目了然比大小柱状图饼图柱状图长度对比精确饼图角度难判断看分布直方图、箱线图折线图分布需要看频次和分位数看相关性散点图柱状图散点图能展示两个变量的联合分布看构成堆叠柱状图饼图饼图超过5类就看不清了饼图我要特别说一下。它在商业汇报里出镜率极高但从数据可视化角度饼图是最难精确读取的图表之一。人眼对角度的判断远不如对长度敏感。如果非要展示构成用堆叠柱状图或者直接列数字效果都好得多。3.2 直方图看清数据分布的第一步直方图是连续变量分布的标准展示方式。它的横轴是变量的取值范围纵轴是落在每个区间内的频次。通过直方图你能一眼看出数据是单峰还是多峰、对称还是偏态、有没有异常的空隙。画直方图最关键也最容易出错的参数是分箱数量。箱子太少分布被过度平滑细节丢失箱子太多每个箱子里没几个数图形锯齿严重噪声被放大。经验法则是箱子数量取数据量的平方根比如1000个数据点取约32个箱子。但这不是铁律实际要看数据的取值范围和业务含义。如果数据集中在某个区间可以在那里加密分箱。我个人的习惯是先按平方根法则画一版然后根据看到的形态调整。如果发现某个区间有异常高的柱子就缩小分箱宽度看看是不是有数据堆积如果整体太平就增大分箱宽度让趋势显现。直方图不是画一次就完事的它是一个探索工具要反复调整。3.3 箱线图离群点检测的利器箱线图用五个数概括一组数据最小值、下四分位数、中位数、上四分位数、最大值。箱体是中间50%的数据须线延伸到非离群点的最远值超出须线的点就是离群点。判断离群点的标准是超过上四分位数加1.5倍四分位距或低于下四分位数减1.5倍四分位距。这个1.5倍是经验值来自正态分布的性质——正态分布下约99.3%的数据落在这个范围内。但要注意离群点不等于错误数据。它可能是录入错误也可能是真实的极端情况。发现离群点后第一步是回溯原始记录确认是哪种情况而不是直接删掉。箱线图还有一个高级用法是分组箱线图。把数据按类别分组每组画一个箱子并排展示。这样能直观对比不同组的中位数和离散程度。比如按渠道分组看客单价分布哪个渠道的客单价高且稳定一眼就能看出来。3.4 散点图与相关性两个变量的联合探索散点图把两个变量分别放在横轴和纵轴每个数据点是一个观测。它能展示出相关性、聚类模式、离群点等丰富信息。看散点图时我关注三件事方向正相关还是负相关、强度点聚得紧不紧、形状是线性还是曲线。相关系数是散点图的数值补充。皮尔逊相关系数衡量线性相关取值在-1到1之间。但相关系数为0不代表没有关系可能只是没有线性关系。这时候要看散点图可能呈现U形或圆形分布。另外相关系数对离群点极其敏感一个极端的点就能把系数从0.1拉到0.8。所以永远不要只看相关系数就下结论一定要配合散点图。当数据点太多导致散点图变成一团黑时可以用透明度alpha或者分箱散点图来缓解。透明度让重叠的点颜色加深密度高的区域自然显现。分箱散点图把平面划分成网格用颜色深浅表示每个格子里的点数适合大数据量。3.5 绘图函数的参数调优与常见问题绘图函数用起来简单但有几个参数调不好图就废了。第一个是坐标轴范围。默认范围有时会把离群点拉得很远导致主体数据挤在一角。这时候手动设置坐标轴范围把离群点截断主体分布就清楚了。但截断要在图注里说明不能悄悄截。第二个是标签和标题。我见过太多图没有轴标签看的人根本不知道横轴纵轴代表什么。每张图必须有标题、横轴标签、纵轴标签、单位。如果是分组图还要有图例。这些不是可选项是基本要求。第三个是中文显示问题。用matplotlib画图时默认字体不支持中文会显示成方框。解决办法是设置字体参数指定一个支持中文的字体。这个坑几乎每个用Python画图的人都踩过设置一次记下来就好。提示画图时先想清楚“这张图要回答什么问题”然后倒推需要什么图表类型和参数。不要为了画图而画图没有问题的图就是废图。4. 透视分析的落地方法与进阶技巧4.1 透视表的本质多维切片与聚合透视分析的核心思想可以用一句话概括把数据按行维度、列维度、筛选维度重新组织在交叉点上做聚合计算。行维度决定每一行是什么列维度决定每一列是什么筛选维度决定看哪部分数据聚合方式决定交叉点填什么数。举个例子。一份销售数据行维度放“地区”列维度放“产品类别”筛选维度选“2024年”聚合方式用“求和”得到的就是2024年各地区各品类的销售额矩阵。换一个聚合方式比如“计数”得到的就是订单数量矩阵。换一个筛选维度比如“2023年”就能做同比对比。透视表的强大之处在于交互式探索。你可以随时拖拽字段换一个维度看换一个聚合方式看几秒钟就能得到一个新视角。这种快速迭代的能力是静态报表给不了的。我通常会用透视表做初步探索找到值得深入的点后再写代码做精细分析。4.2 行维度、列维度、值字段的搭配逻辑搭配这三个区域是有讲究的。行维度适合放基数适中、需要逐行对比的字段比如地区、部门、产品线。列维度适合放基数较小、需要横向对比的字段比如季度、年龄段、客户等级。如果把高基数字段放列维度表格会宽到没法看。值字段的选择取决于分析目的。求和看总量均值看水平计数看频次最大值最小值看极值方差看稳定性。同一个透视表里可以放多个值字段比如同时看销售额和订单量对比两者的变化是否一致。如果不一致说明客单价在变化这本身就是一条有价值的线索。筛选维度用来控制分析范围。可以放时间字段做同比环比放地区字段做区域对比放状态字段排除异常数据。筛选维度可以多选比如同时看“已完成”和“进行中”的订单排除“已取消”的。4.3 计算字段与占比分析透视表的进阶玩法基础透视表只能做现成字段的聚合但实际分析中经常需要算比率、算占比、算同比。这时候就要用计算字段。计算字段是用现有字段通过公式生成的新字段比如“利润率 利润 / 销售额”“完成率 实际值 / 目标值”。占比分析是透视表的高频需求。比如看各品类销售额占总销售额的比例或者看各地区销售额占该地区目标的比例。在Excel里可以用“值显示方式”直接切换成“列汇总的百分比”或“行汇总的百分比”。在pandas里用pivot_table算出矩阵后除以对应的合计行或合计列即可。同比环比是另一个高频需求。做法是把时间维度同时放到行和列行放月份列放年份值放销售额得到的矩阵天然就是同比对比。再进一步用计算字段算增长率就能直接看到哪些月份在增长、哪些在衰退。4.4 透视分析中的常见陷阱与排查透视表用起来爽但有几个陷阱不注意就会得出错误结论。第一个是聚合方式选错。把应该求和的字段设成了计数或者把应该求平均的字段设成了求和结果完全不对。每次做透视前先问自己“这个字段聚合的业务含义是什么”。第二个是缺失值处理。透视表默认会把缺失值排除在计算之外但有时候缺失本身就有含义。比如某个地区某品类没有销售额可能是真的没卖也可能是数据没录进来。这两种情况的处理方式完全不同。建议在透视前先检查缺失情况必要时用0填充或者单独标记。第三个是辛普森悖论。这是透视分析里最隐蔽的陷阱整体看A比B好但分组看每个组里B都比A好。原因是分组变量的分布不均衡。比如整体看甲医院的治愈率高于乙医院但按病情严重程度分组后每个组里乙医院都更高因为乙医院收治的重症患者比例更高。遇到整体和分组结论矛盾时一定要深挖分组变量。常见问题表现排查思路解决方法聚合方式错误结果数量级明显不对检查值字段的聚合设置根据业务含义重设求和/均值/计数缺失值干扰合计与分项之和对不上检查原始数据缺失情况填充或单独标记缺失辛普森悖论整体与分组结论相反检查分组变量分布是否均衡分层分析或加权调整维度基数过高表格行数过多无法阅读统计各维度唯一值数量合并小类别或换维度时间维度错位同比环比数据对不上检查时间字段的粒度和范围统一时间粒度对齐时间范围4.5 从透视表到数据洞察的最后一公里透视表本身只是工具真正的价值在于从表格里读出业务含义。我总结了一个三步法看异常、找关联、提假设。看异常就是找那些明显偏离其他单元格的数。比如所有地区的转化率都在3%左右唯独某个地区是0.5%这就是异常值得深挖。找关联是看不同维度之间有没有联动。比如某个品类的销售额下降的同时另一个品类的销售额上升可能存在替代效应。提假设是基于观察到的模式提出可验证的业务假设比如“转化率低是因为该地区物流时效差”然后设计后续分析去验证。这一步是区分“会做透视表的人”和“会做分析的人”的关键。工具谁都能学但从数据里读出故事的能力需要业务理解和逻辑推理的积累。我的建议是每次做完透视表强迫自己写三句话我看到了什么、这意味着什么、我接下来要验证什么。坚持一段时间分析敏感度会明显提升。5. 三类方法的协同实战与避坑心得5.1 一个完整的分析流程演示我把前面讲的方法串起来走一遍完整流程。假设你拿到一份某在线教育平台的用户学习行为数据包含用户ID、注册日期、课程类别、学习时长、完成率、付费金额等字段想分析“什么样的用户更可能付费”。第一步函数计算做整体画像。算总用户数、付费用户数、付费率算学习时长和完成率的均值中位数标准差算付费金额的分布。发现付费率只有5%学习时长中位数是2小时但均值是8小时明显右偏。第二步绘图看分布。画学习时长的直方图发现大量用户集中在0到1小时少数用户超过50小时。画付费金额的箱线图发现有几个极高的离群点。画学习时长与完成率的散点图看到明显的正相关。第三步透视分析找差异。按课程类别透视付费率发现编程类课程的付费率是语言类的三倍。按学习时长分箱后透视付费率发现学习时长超过10小时的用户付费率骤升到25%。按注册月份透视发现近三个月注册的用户付费率明显低于早期用户。第四步综合判断。高学习时长、编程类课程、早期注册的用户付费率最高。这个结论可以直接指导运营策略对学习时长超过10小时的用户推送付费提醒对编程类课程加大推广力度。5.2 数据质量问题的前置检查清单分析做得再漂亮数据有问题全白搭。我在每次分析前都会跑一遍检查清单这里分享出来。行数检查总行数是否符合预期有没有重复行主键检查唯一标识列有没有重复值缺失值检查每列的缺失比例缺失是否集中在某些行类型检查数值列是否被识别为数值日期列是否被识别为日期范围检查数值列的最小最大值是否在合理范围内有没有负数出现在不该出现的地方一致性检查关联表的键是否能对上汇总数是否等于明细数之和时间检查时间范围是否覆盖分析周期有没有未来日期这份清单看起来繁琐但跑一遍也就几分钟能避免后面几小时的返工。我踩过最惨的一次坑是没检查日期范围结果把测试数据混进了分析结论完全错误汇报时被当场指出非常尴尬。5.3 分析结论的验证与表达得出一个结论后别急着下判断。我习惯做两件事换一种方法验证和找一个反例挑战。换一种方法验证比如用透视表发现某群体付费率高那就用函数计算单独算一遍这个群体的付费率看是否一致。如果两种方法结果不同说明中间有环节出了问题。找一个反例挑战就是主动去找有没有不符合这个结论的数据点。如果找到了分析这个反例为什么存在往往能发现更深层的规律。表达结论时我坚持三个原则说人话、给证据、标局限。说人话就是别堆术语用业务方听得懂的语言。给证据就是每个结论后面附上支撑的数据和图表。标局限就是说明这个结论在什么范围内成立有哪些没考虑到的因素。这三条做到了你的分析才可信、可用。5.4 我踩过的那些坑与总结的经验最后分享几个我实际踩过的坑都是血泪教训。第一个坑是过度依赖均值。早期做分析时我习惯用均值代表整体水平结果被右偏数据坑了好几次。后来养成了习惯均值和中位数一起看差异大就以中位数为准。第二个坑是图表误导。有一次我把纵轴不从0开始画柱状图视觉上差异被放大了好几倍汇报时被质疑。从那以后柱状图纵轴一律从0开始折线图可以灵活但要在图注说明。第三个坑是透视表维度太多。刚开始用透视表时恨不得把所有维度都拖进去结果表格复杂到自己也看不懂。后来学会了做减法一次只回答一个问题维度控制在三个以内。第四个坑是忽略数据更新。有一次分析用的是上周的数据结论刚汇报完数据就更新了结论完全反转。现在我养成了习惯分析前确认数据截止时间汇报时注明数据口径。这些经验听起来简单但都是真金白银换来的。基础方法不难难的是养成严谨的习惯和敏锐的直觉。函数计算、绘图、透视分析这三样练到肌肉记忆的程度你面对任何数据都不会慌。后面再学复杂的模型和算法也会发现它们不过是在这些基础之上的自然延伸。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑