统计图表怎么做?我用一份二手房数据给你讲明白
共 2200字,需浏览 5分钟
·
2022-01-01 16:17
导读:报表与统计图作为数据信息输出的一种方式,被广泛运用于数据展示、交流等工作中。本文使用一份二手房数据演示如何制作报表与统计图。
报表可用于展现数据的主要信息,分为包含维度(分类变量)指标和度量(连续变量)指标的报表。
仅含有维度指标的报表称为频次表(单个分类变量)和交叉表(两个及以上分类变量),含有维度和度量两类指标的报表称为汇总表,其中度量指标总是以某个统计量的形式出现,最常出现的是均值、总和、频次。
条形图是一种运用非常广泛的数据展示图,便于分类变量之间的数据对比。条形图和报表有一一对应关系。如果有一个分类变量,条形图就是一维的;如果有两个分类变量,条形图就是二维的。条的长度对应频次或度量指标的某个统计量,如图1所示。
▲图1 报表与统计图形
接下来使用一份二手房数据(sndHsPr.csv)演示如何制作报表。对于二手房,我们不但关心其本身的统计特征(统计量),还关心影响这个变量的因素,如表1所示。
▼表1 二手房数据
制作报表就是根据数据类型选取合适的统计量并进行展现的过程。图2表现的是一个比较全面的二维表模板,三维表只不过是简单的叠加而已。水平轴和垂直轴分别是两个分类变量。单元格中存放的是某个变量的统计量。如果单元格中没有放入任何变量,其展现的是频次或百分比等指标。如果单元格中放入某个连续变量,其展现的就是这个连续变量的某个统计量,比如均值、总和等。
▲图2 二维表模板
将二维表模板的内容进行缩减,可以得到单因子频数、表分析、汇总统计量,具体说明如下。
1)单因子频数:仅分析单个分类变量的分布情况,提供每个分类水平的频次、百分比和累积值,如图3所示。
▲图3 单因子频数统计示意
snd为读入数据后的数据框名称,district为该住房所在城区的中文名称,value_counts函数用于获取每个城区出现的频次,完整的语句为snd.district.value_counts()。用条形图展现频次统计的语句为snd.district.value_counts().plot(kind = 'bar'),其中“kind =”为图表类型,bar表示柱形图,如图4所示。
▲图4 单因子统计图形示意
2)表分析:分析两个分类变量的联合分布情况,提供每个单元格中样本出现的频次、百分比和边沿分布情况,如图5所示。
▲图5 表分析示意
表分析(也称交叉表)使用的函数为pd.crosstab,比如分析是否有地铁与是否是学区房之间的关系,语句为pd.crosstab(snd.subway,snd.school)。我们可以使用标准化堆叠柱形图对表分析的结果进行展现。其步骤是先获取交叉表的结果,然后使用div(sub_sch.sum(1),axis = 0)函数计算交叉表的行百分比,最后绘制柱形图,如图6所示。
▲图6 表分析统计图形
堆叠柱形图易于展现横轴变量的分布情况,标准化堆叠柱形图易于做比较,笔者推荐采用图7来展现全部交叉表信息。笔者使用stack2dim函数制作堆叠柱形图,其主要参数raw为Pandas的数据框,i、j为两个分类变量的变量名称,要求带引号,比如"school"。
▲图7 堆叠柱形图示意
3)汇总统计量:按照某个分类变量分组,对连续变量进行描述性统计,如图8所示。
▲图8 汇总统计量示意
图9展现了每个城区单位面积房价的统计信息,我们可以使用Pandas提供的函数snd.price.groupby(snd.district).agg(['mean', 'max', 'min'])获取。该语句的含义为按照district变量分组,计算price的均值、最大值、最小值,其中agg函数的功能是归并若干个函数的结果。
▲图9 汇总统计量统计图形示意
本文摘编于《金融商业数据分析:基于Python和SAS》,经出版方授权发布。(书号:978-7-7-111-69583-7)
延伸阅读👇
延伸阅读《金融商业数据分析》
推荐语:这是一本金融商业数据分析的实战工具书。作者都是在金融行业有10~20年数据分析经验的资深专家,他们将多年来的项目经验、培训和咨询经验融合成了这本书。它将指导读者零基础掌握金融数据分析的工具、思路、方法和技巧,快速实现从入门到进阶的突破。本书强调实战,方法论与实践相结合,所有案例均来自实际的金融业务,涵盖工具使用、数据处理、统计分析等数据分析的全流程。
干货直达👇