【数据分析】Kaggle项目之共享单车数据分析(二)

该博客详细分析了共享单车租赁数量受时段、工作日与非工作日、温度、湿度、年份月份、季节、天气和风速等因素的影响。发现会员用户在工作日的早晚高峰和中午有较高租赁需求,非工作日则在下午达到峰值。气温上升通常伴随租赁数量增加,但过高或过低时会减少。湿度20左右时租赁数量最多。2012年相比2011年租赁量增长,且租赁情况与月份波动明显。秋季为骑行高峰,天气4的异常数据表明可能包含异常值。风速增大通常导致租赁减少,但风速40时出现异常反弹。工作日会员用户租赁多,周末临时用户增加,节假日租赁数量下降。

数据分析

逐项展示

时段对租赁数量的影响

workingday_df=Bike_data[Bike_data['workingday']==1]
workingday_df=workingday_df.groupby(['hour'],as_index=True).agg({
    'casual':'mean','registered':'mean','count':'mean'})
nworkingday_df=Bike_data[Bike_data['workingday']==0]
nworkingday_df=nworkingday_df.groupby(['hour'],as_index=True).agg({
    'casual':'mean','registered':'mean','count':'mean'})

fig,axes=plt.subplots(1,2,sharey=True)
workingday_df.plot(figsize=(15,5),title='The average number of rentals initiated per hour in the working day',ax=axes[0])
nworkingday_df.plot(figsize=(15,5),title='The average number of rentals initiated per hour in the nonworkingdays',ax=axes[1])

在这里插入图片描述
可以看出:

  • 工作日对于会员用户的上下班时间是两个用车高峰,而中午也会有一个小高峰,猜测可能是外出午餐的人。
  • 对于临时用户起伏比较缓慢,高峰期在17点左右
  • 会员用户的用车数量远超过临时用户
  • 对于非工作日而言的租赁数量随着时间呈现一个正态分布,高峰在14点左右,低谷在4点左右,且分布比较均匀

温度对租赁数量的影响

# 数据按照小时统计展示起来太麻烦,希望能够按天汇总取一天的气温中位数
temp_df = Bike_data.groupby(['date','weekday'],as_index=False).agg({'year':'mean','month':'mean','temp':'median'})
# 由于测试数据集中没有租赁信息,会导致折线图有断裂,所以将缺失的数据丢弃
temp_df.dropna(axis=0,how='any',inplace=True)
# 预计按天统计的波动仍然很大,再按月按日取平均值
temp_month=temp_df.groupby(['year','month'],as_index=False).agg({'weekday':'min','temp':'median'})
# 将按天求和统计数据的日期转换成datetime格式
temp_df['date']=pd.to_datetime(temp_df['date'])
# 将按月统计数据设置一列时间序列
temp_month.rename(columns={'weekday':'day'},inplace=True)
temp_month['date']=pd.to_datetime(temp_month[['year','month','day']])
# 设置画框尺寸
fig=plt.figure(figsize=(18,6))
ax=fig.add_subplot(1,1,1)
# 使用折线图展现总体租赁情况(count)随时间的走势
plt.plot(temp_df['date'],temp_df['temp'],linewidth=1.3,label='Daily average')
ax.set_title('Change trend of average temperature per day in two years')
plt.plot(temp_month['date'],temp_month['temp'],marker='o',linewidth=1.3,label='Monthly average')
ax.legend()

在这里插入图片描述
可以看出

  • 每年的气温趋势相同,随着月份发生变化
  • 7月份气温最高,1月份气温最低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值