除了查看数据,量化数据的重要属性也很重要。我们可以从计算其中一列的均值开始量化,如下所示:
print(hour['count'].mean())
在这里,我们通过使用方括号([])和列名(count)来访问hour数据集的count列。如果单独运行print(hour['count']),你会看到整列的内容。但是我们只需要该列的均值,而不需要该列中的每个具体值,所以我们添加了pandas提供的mean()方法。我们看到均值约为189.46。从商业的角度来看,均值是对数据涵盖的两年的业务规模的粗略衡量。
除了计算均值,我们还可以计算其他重要指标,如下所示:
print(hour['count'].median()) print(hour['count'].std()) print(hour['registered'].min()) print(hour['registered'].max())
在这里,我们使用median()方法计算count列的中位数,使用std()方法计算count列的标准差(标准差是对一组数字离散程度的度量,它有助于我们了解数据中每个小时用户数量的变化量)。我们还分别使用min()和max()方法计算registered列的最小值和最大值。注册用户的数量从0到886不等,这显示了每小时的记录,以及如果你想让你的业务比以前更好,需要打破的纪录。
以上简单的计算被称为汇总统计,对数据集使用这些计算将很有帮助。检查数据集的汇总统计可以帮助你更好地了解数据,也可以帮助你更好地了解业务。
这些汇总统计看起来很简单,但其实许多 CEO 都无法马上回答有关他们公司的数据统计问题。了解像每天各时段的平均用户数量这样的简单数据,可以帮助了解公司的规模,以及公司有多少成长的空间。
这些汇总统计还可以与其他信息结合使用,以使我们了解更多内容。例如,如果你查看公司每小时自行车使用价格,将其乘以count列的均值,则可以获得两年内的总收入(我们使用的数据集的时间跨度为两年)。
你可以使用pandas中的方法(如mean()和median())手动获取汇总统计,就像之前所做的那样;也可以使用另一种方法,一次性获取多个汇总统计信息,如下所示:
print(hour.describe())
在这里,我们使用describe()方法获取数据集中所有变量的汇总统计。输出如下所示:
instant season ... registered count count 17379.0000 17379.000000 ... 17379.000000 17379.000000 mean 8690.0000 2.501640 ... 153.786869 189.463088 std 5017.0295 1.106918 ... 151.357286 181.387599 min 1.0000 1.000000 ... 0.000000 1.000000 25% 4345.5000 2.000000 ... 34.000000 40.000000 50% 8690.0000 3.000000 ... 115.000000 142.000000 75% 13034.5000 3.000000 ... 220.000000 281.000000 max 17379.0000 4.000000 ... 886.000000 977.000000 [8 rows x 16 columns]
可以看到,describe()方法为我们提供了一个完整的表格,该表格包含几个常用的指标,比如每个变量的均值、最小值和最大值等。describe()的输出还包含百分位数,例如,25%表示数据集内各个数值类型列的第25百分位数。我们可以看到count列的第25百分位数为40,这意味着数据集内有25%的“每小时用户数”为40或40以下,而有75%的“每小时用户数”超过40。
使用describe()方法得到的表格很有用,它可以帮助我们检查数据问题。数据集通常会包含一些明显的错误,这些错误可以从describe()的输出中发现。例如,如果你在一个人员数据集上运行describe()方法,发现这些人的平均年龄是200岁,那么数据集中肯定存在错误。这样的错误显而易见,但在一篇发表于知名学术期刊上的研究论文中,确实发现了这种错误(平均年龄大于200岁)——如果那些研究人员使用了describe()就好了!你应该查看每个数据集的describe()输出,确保所有的值至少是在合理的范围内的。如果你发现了看起来不可信的数据,就需要找出数据中的问题并对问题进行修正。
截至目前,我们已经可以利用从数据中学到的知识来提出改进业务的方法。例如,我们发现,在数据记录的前24小时内,夜间骑行人数远远少于白天骑行人数。我们还发现,每小时用户数存在很大的变化:25%的时间内骑行人数不超过40,但在某个小时内骑行人数为977。作为CEO,你可能希望更多的时间中每小时的骑行人数接近977,而更少的时间中每小时的骑行人数不超过40。
你可以通过多种方式实现这个目标。例如,你可以降低夜间用车价格,以吸引更多的客户,并由此减少骑行人数较少的时间。仅通过简单的探索,你就可以继续从数据中学习并得到改进业务的方法。