首页 >知识讲堂 >数据分析知识>对于Citi Bike和用户骑行的分析

对于Citi Bike和用户骑行的分析

2020-12-31 14:46:10 阅读(206 评论(0)

“花旗银行”是纽约2013年5月27日启动的自行车共享计划(CitiBank)赞助并命名为“花旗自行车”(CitiBike)。皇后区和泽西市有8000辆自行车和500个车站,在曼哈顿,布鲁克林。为纽约居民和游客提供方便、快捷、省钱的出行方式。到处都可以借到CitiBank,并在他们的目的地归还。使用CitiBank的方法很简单,购买会员资格,然后在附近找到可用的CitiBank,使用会员key解锁,在有效时间内(30或45分钟)归还并锁定CitiBank。由于每个CitiBank租赁站点都有GPS位置信息,因此可以记录用户租赁和骑行过程中的数据。“CitiBank“官方网站为用户提供每次骑行的数据,包括租赁开始和结束的位置和时间、整个骑行过程的时间、自行车ID、用户的性别和出生日期。我们将使用python对“CitiBank为了了解纽约自行车共享计划,分析了2015年的数据。并回答问题,比如谁在使用CitiBike时开始每次骑行的时间和距离,以及哪些骑行路线最受欢迎。首先,我们将需要使用的库文件导入python,包括numpy,pandas,datetime和pyplot用于数据可视化,我们将根据不同的分析方向导入其他库文件。123456importnumpimpandaspdimportime,datetimeimportmatplotlib.pyplotasplt#读取CitiBike数据,创建数据表cb1=pd.DataFrame(pd.read_csv('201501-citibike-tripdata.csv'))按月存储CitiBike数据,因此,我们需要每月阅读并拼接每个月的数据。12345#拼接导入的数据表,总结后的数据表称为cbcb=cb1.append(cb2,ignore_index=False)#查看数据表维度cb.shape(9937969,15)2015年CitiBike数据共包含993万行,15列数据。每一行数据都代表“一次”CitiBank租赁和骑行记录。每一行数据都代表“一次”CitiBank租赁和骑行记录。我们首先对2015年的“惊人的990万次骑行”进行了调查CitiBank统计数据中的几个关键指标,每年共有497个租赁点,即车站,8477辆自行车被使用。自行车的使用次数高达993万次,平均每辆自行车每天租3.21次。可见人对“可见人对”CitiBank”的热情。平均每次骑行时间为16.13分钟。以下是每个关键指标的统计代码和结果。12346791111211141618(cb['startstationname'].unique()497#唯一的自行车ID计数len(cb['bikeid'].unique()8477#骑行次数计数cb['starttime'].count()9937969#每辆自行车租赁频率cb[ལbikeid'].count()/len(cb['bikeid'].unique()1172.34505133239#每辆自行车每日租赁频率cb['bikeid'].count()/len(cb['bikeid'].unique()/3653.21904250178966#每次租赁的平均时间(分钟)cb['tripduration'].sum()/cb['bikeid'].count()CitiBike在6016.134942371323582015年的总体使用趋势由低到高,CitiBike在2月份使用量最低,然后使用量逐月增加,直到9月份使用量最高。十一月份使用量开始下降。11月份使用量开始下降。这可能是由季节和温度因素引起的。以下是对骑行数据的季度汇总和比较。以下是每月汇总骑行数据和折线图的代码。123467891111211114161718#starttime设置日格式cb[ལstarttime']=pd.to_datetime(cb['starttime'])#将startime设置为数据表索引cb=cb.set_index('starttime')#按月计算骑行数据cb_month=cb.resample('M',how=len)#bikeid字段group提取汇总cb_month=cb_month['bikeid']#按月汇总的骑行次数折线图plt.rc('font',family='STXihei',size=15)a=np.array([1,2,3、4、5、6、7、8、9、11、12)plt.plot(group_cb_month,'g8',group_cb_month,'g-',color='#39A2E1',linewidth=3,markeredgewidth=3,markeredgecolor='#39A2E1',alpha=0.8)plt.xlabel('月份')plt.ylabel('租赁骑行次数')plt.title('2015年,CitiBike每月骑行次数')plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='y',alpha=0.4)plt.xticks(a,('1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'))plt.show()根据2015年第四季度的数据,用户对CitiBike的使用受季节因素的影响,第一季度气温最低,CitiBike使用量也较低。夏秋交替,第二季度和第三季度使用量最高。12346791111211415#季度计数自行车数据cb_quarterly=cb.resample('Q',how=len)#bikeid字段group按季度总结提取_cb_quarterly=cb_quarterly['bikeid']#按季度总结的骑行次数绘制柱状图plt.rc('font',family='STXihei',size=15)a=np.array(1,2,3,4)plt.bar(1,2,3,4),group_cb_quarterly,color='#39A2E1',alpha=0.8,align='center',edgecolor='white')plt.xlabel('季度')plt.ylabel('租赁骑行次数')plt.title('2015年,CitiBike每季度骑行次数')plt.legend(['次数'],loc='upperright')plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='y',alpha=0.4)plt.xticks(a,('一季度','二季度','三季度','四季度'))plt.show()谁在使用CitiBike?我们很好奇993万次骑行的巨大数据背后是谁在使用CitiBike。由于获得的数据只包括用户性别、出生日期和会员类别的数据,我们只从这三个维度简要描述CitiBike用户。由于获得的数据只包括用户性别、出生日期和会员类别的数据,我们只从这三个维度简要描述Citibike用户。2015年,66%的男性用户使用Citibike服务,66%是男性用户,女性用户占20%,13%的用户性别未知。这让我想起了北京自重25公斤的自行车共享。以下是计算用户性别比例和绘制饼图的代码。12345678910#根据用户性别总结并计算不同性别的user_gender=cb.groupby('gender')['bikeid'].agg(len)/cb["bikeid"].count()*100#总结用户性别比例饼图pltt.rc('font',family='STXihei',size=15)colors=["#052B6C","#39A2E1","#EA1F29"]name=['未知','男性','女性']plt.pie(user_gender,labels=name,colors=colors,explode=(0,0,0),startangle=60,autopct='%1.1f%%')plt.title('Citibike用户性别比例')plt.legend(['未知','男性','女性'],loc='upperleft')plt.show()30-50岁的用户热衷于骑自行车。我们将Citibike的用户年龄分为四组,0-18岁为青年组,18-30岁为青年组,30-50岁为中年组,50岁以上为老年组。其中,青年组的租赁和骑行次数最少,中年组的租赁和骑行次数最多,其次是青年组。其中,青年组的租赁和骑行次数最少,中年组的租赁和骑行次数最多,其次是青年组。50岁以上的老年组也有相当多的记录。以下是用户年龄分组和汇总柱状图的代码。用户年龄由出生日期和当前年份计算,包括一些极端值。123#查看出生日期的cb['birthyear'].min(),cb['birthyear'].max()(1885.0,199.0)这里1885年很奇怪,根据这个出生日期,2016年用户的年龄已经达到了131岁。具体原因我们不知道,但由于CitiBike的整体数据比较规范,不需要清洗,所以我们选择保留这个值。2015年和用户出生日期计算年龄cb[�#;age']=2015-cb['birthyear']#最小年龄为17岁,最大年龄为131岁cb['age'].min(),cb['age'].max(17.0,131.0)#用户年龄分组bins=[0,18,30,50,131]group_age=['少年','青年','中年','老年']cb['group_age']=pd.cut(cb['age'],bins,labels=group_age)#数据按年龄分组汇总user_age=cb.groupby('group_age')['group_age'].agg(len)#生成用户年龄分布柱状图pltt.rc('font',family='STXihei'

以上就是关于对于Citi Bike和用户骑行的分析的相关介绍,更多对于Citi Bike和用户骑行的分析相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对对于Citi Bike和用户骑行的分析有更深的了解和认识。

内容来源:数据分析网,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询