第9章 数据输出
处理和分析完的数据可以输出为xlsx格式和csv格式。
1. 写入Excel
2. 写入csv
案例 990万次骑行:纽约自行车共享系统分析
Citi Bike是纽约市在2013年5月27日启动的一项自行车共享计划,由“花旗银行”(Citi Bank)赞助并取名为“花旗单车”(Citi Bike)。在曼哈顿,布鲁克林,皇后区和泽西市有8,000辆自行车和500个车站。为纽约的居民和游客提供一种方便快捷,并且省钱的出行方式。
人们随处都能借到Citi Bank,并在他们的目的地归还。使用CitiBank的方法很简单,购买会员资格,然后在附近查找可以使用的CitiBank,使用会员key解锁,在有效时间内(30或45分钟)归还并锁定CitiBank。由于每个Citi Bank的租赁站点都有GPS位置信息,因此可以记录到用户租赁和骑行过程中的数据。“Citi Bank”官网提供了用户每一次骑行的数据,包括租赁开始及结束的位置及时间,整个骑行过程的时间,自行车ID,以及用户的性别和出生日期等数据。我们将使用python对“Citi Bank”2015年的数据进行分析,以了解纽约自行车共享计划的情况。并回答诸如谁在使用Citi Bike?他们什么时间开始骑行?每次骑行的时间和距离,以及哪些骑行线路最受欢迎等问题。
开始前的准备工作
首先我们将需要使用的库文件导入到python中,这里包括numpy、pandas、datetime和用于数据可视化的pyplot,后面根据不同的分析方向我们还会陆续导入其他的库文件。
Citi Bike的数据是按月存储的,因此我们需要逐月读取并将各个月份的数据进行拼接。
2015年Citi Bike数据共包含993万行,15列数据。其中每一行数据都代表一次“Citi Bank”的租借和骑行记录。
惊人的990万次骑行
我们首先对2015年“Citi Bank”的数据中的几个关键指标进行统计,在一年中共有497个租赁点,也就是车站,8477辆自行车被使用。自行车的使用次数更是高达993万次,平均算下来每辆自行车每天被租借3.21次。可见人们对“Citi Bank”的热情。而每次的骑行时间平均为16.13分钟。
以下为每个关键指标的统计代码和结果。
2015年的Citi Bike的使用量整体趋势由低到高,2月Citi Bike的使用量最低,然后使用量逐月增长,直到9月出现使用量最高值。11月使用量开始下降。这可能是由于季节和气温因素导致的。我们下面按季度对骑行数据进行汇总并进行对比。
以下是按月汇总骑行数据并汇总折线图的代码。
从2015年四个季度的数据来看,用户对Citi Bike的使用受季节因素的影响,第一季度气温最低,Citi Bike的使用量也较低。第二季度第三季度为夏秋交替,使用量最高。
哪些人在使用Citi Bike ?
我们很好奇993万次骑行这个庞大的数据后面是哪些人在使用CitiBike。由于获得的数据中只有用户性别,出生日期和会员类别的数据,因此我们仅从这三个维度对Citi Bike的用户进行简单的描述。
66%的男性用户使用Citi Bike
2015年使用Citi Bike服务的用户中,66%为男性用户,女性用户的占比为20%,另外还有13%的用户性别未知。这让我想起了北京自重25公斤的共享单车。
以下是计算用户性别占比和绘制饼图的代码。
30~50岁用户热衷于骑行
我们将Citi Bike的用户年龄分为四组,0~18岁为少年组,18~30岁为青年组,30~50岁为中年组,50岁以上为老年组。其中少年组的租借和骑行次数最少,中年组的租借和骑行次数最高,其次为青年组。50岁以上的老年组也有相当数量的记录。
以下是对用户年龄分组和汇总柱状图的代码,用户年龄由出生日期和当前年份计算得出,其中包含部分极端值。
这里1885年很怪异,按照这个出生日期,2016年时用户的年龄已经达到了131岁。我们不知道其中的具体原因,但由于Citi Bike整体的数据较为规范不需要清洗,因此我们选择保留这个值。
86%的用户为年费会员
Ctii Bike对纽约本地居民,短期停留和游客提供了三种会员期限选择,按Citi Bike官网的推荐,年度会员适合于本地居民,也是最划算的一种租赁方式。3天的会员适合于短期停留或居住的用户,1天的会员适合于游客。因此我们也可以按不同的会员期限反向推断用户的身份。
在2015年的数据表中,1天和3天的会员统称为Customer,年度会有成为Subscriber。从下面的占比数据中可以看出,绝大部分Citi Bike的用户为年度会员,占比高达86%。反向推测绝大部分用户为纽约本地常住居民。
以下为计算用户会员类别和汇总饼图的代码。
用户的骑行时间及速度
在993万次骑行的数据背后,是否存在一些规律?我们选择了5月(春季)的数据对用户使用Citi Bike的行为进行了统计和分析,这里既包括使用Citi Bike的时间,也包括骑行速度,热门租赁站点和骑行线路。
每日早晚是使用高峰
Citi Bike的使用者大部分为城市居民,少部分为游客。在一天中的上午7点—8点和下午的5点~6点是Citi Bike的使用高峰。这两个时间正好是上下班的高峰时间。除此之外中午12点~下午4点也有较高的使用量。
以下是24小时使用趋势和绘制折线图的代码。
骑行时间多在20分钟以内
在骑行时间方面,按照不同的会员类别Citi Bike对时间有不同的限制,1天和3天会员每次骑行的限制时间为30分钟,超过30分钟每增加15分钟收费4美金。年度会有每次骑行限制时间为45分钟,超出10分钟收费2.5美金,再次超出逐级收费。Citi Bike鼓励用户短途使用并且在接近限制时间时重新租赁新的自行车,避免产生超时费用,并且提高自行车的周转率。
我们对5月份用户的骑行时间进行处理和分组,通过下面的图表可以看出大部分用户的使用时间为10~20分钟。其次为30分钟和5分钟以内。超过30分钟的使用次数较少。即使在86%的用户为年度会员的情况下,使用时间在30-45分钟的情况也较少。由此推测大部分的骑行为短途。
以下为骑行时间分组和绘制柱状图的代码。
平均骑行速度6.3公里/小时
在Citi Bike的数据表中并没有直接提供每次骑行的速度数据,但包含了每个开始和结束站点的经纬度坐标。我们通过这些坐标计算出了两个站点间的距离,并匹配到对应的骑行中。在经过与本次骑行所耗费的时间计算出这次骑行的平均速度。通过对5月的数据进行处理,用户的平均骑行速度为6.3公里/小时。
以下是计算骑行速度的代码。
骑行与气温是否存在关联?
在990万次骑行中,第一季度用户对Citi Bike的使用量最低,第三季度使用量最高。有明显的季节因素。下面我们导入纽约市2015年的气象数据,来看下天气因素与Citi Bike间是否存在关联,并试着用天气的变化来预测Citi Bike的使用量。
绘制每日最高气温与Citi Bike使用量的散点图,从图中可以发现Citi Bike的使用量与日最高气温间呈正相关,随着日最高气温的增长Citi Bike的使用量也在逐渐增长。接下来我们通过回归分析发现最高气温与Citi Bike间的R平方值为0.6,两者存在正向关联。换句话说日最高气温可以解释Citi Bike租赁和骑行数量60%的变化原因。因此,我们通过这种关联分布对不同气温下的Citi Bike的租赁数量进行了预测。
以下是绘制散点图和进行回归分析的代码。
回归方程:
骑行速度与年龄是否存在关联?
通过前面的计算我们已经知道了每次骑行用户的年龄和骑行速度信息,那么这两者之间是否存在关联呢?换句话说是否随着年龄的增长骑行速度会逐渐减慢呢?我们通过简单的一元回归来分析下两者间的联系。这里我们只使用2015年5月的数据进行分析。
从R方来看年龄与骑行速度间并没有关联,骑行速度并不会随着年龄的增长而增长。这里主要的原因我想有两个。第一Citi Bike的使用场所主要在城市里,并且多为短途。第二使用者除了城市居民上下班通勤外,还有一部分的游客,他们的目的是欣赏沿途美丽的风景因此骑行速度也会较慢。
哪些骑行线路最受欢迎?
在Citi Bike的官网上有一个频道叫Explore NYC ,里面提供了最热门的骑行线路和沿途的著名景观。我们对5月的数据进行统计,找出最受欢迎的骑行开始地点。以及受欢迎的骑行线路。
Top10受欢迎的租赁点
对5月骑行数据进行统计,找出前10个最受欢迎的骑行开始地点及经纬度数据。将经纬度数据输入到plotly工具中,绘制出Citi Bike2015年5月在纽约最受欢迎的前10个租赁地点。
热门骑行线路追踪
继续前面的操作,在数据透视表的字段中增加结束地点和经纬度数据就可以看到一条完整的骑行线路数据,这里以1 Ave & E 15 St为骑行开始地点,使用plotly工具描绘出一条用户的骑行线路。上面的图中是从Google街景中截图的图片,也是骑行线路开始的地点。下面是plotly工具显示出的本次骑行开始和结束的位置。由于我们只有开始和结束两个经纬度数据,因此显示为一条直线。
借助Google地图的骑行路线我们模拟出了用户这两点之间可能的骑行路线,这并非用户的真实骑行路线。但可以帮助我们更加详细的了解用户使用Citi Bike的情况。
结束语
我们使用Python对纽约自行车共享系统Citi Bike 990万次骑行数据的简单分析,在惊叹于用户对自行车共享系统的热爱和使用频率的同时,也学习到很多用户骑行的信息。使用Citi Bike的用户以纽约市的中年男性为主,在每天的早晨的8点和傍晚6点是Citi Bike的使用高峰。由于Citi Bike对超时单独收取费用,用户的骑行时间多数在20分钟以内。用户对Citi Bike的使用受季节和气温的影响,相关度达到0.6,夏秋两季租赁量最大,冬季最低。用户的年龄与骑行速度关联并不紧密,平均骑行速度为6.3公里/小时。
以上是我们通过本次分析获得的结论,但对于Citi Bike和用户骑行的分析并没有结束。后续我们还会对在博客和公众号对Citi Bike的数据进行更多专项的分析和对比,如用户在每周的骑行趋势是什么样的?工作日和休息日Citi Bike的使用率是否不同?一辆自行车在一天中的路径是什么样的?除了气温以外,还有哪些因素影响了用户对Citi Bike的使用?敬请期待。
获取完整学习方式:
转发+关注啦,最后麻烦私信“学习资料”获取!
私信方式:
第一步,点击头像。
第二部:头像旁边有一个私信按钮,发送{学习资料}即可!