python客户端开发自行车租赁系统_Python实战—自行车租赁数据分析

本文使用Python的numpy、pandas和matplotlib库分析自行车租赁数据,研究了不同时间段、天气条件下的租赁情况。通过对datetime进行数据清洗,转换为时间序列,发现2012年的租赁数据多于2011年,早晚高峰时段租赁量较高,工作日的租赁次数也相对较多。同时,天气恶劣时租赁数减少,但在极端天气下反而有所上升。
摘要由CSDN通过智能技术生成

本节选取自行车的租赁数据,利用numpy、pandas、matplotlib三个库,数据清洗后,做数据分析,研究时间段与自行车租赁的关系。

数据来源

本节以自行车的租赁数据为例,数据来源于网络,利用时间序列分析的方法,通过可视化技术,分析自行车租赁随时间及天气变化的分布情况,其中datetime、season、holiday、workingday、weather、temp、atemp 、humidity、windspeed、casual 、registered、count字段分别代表租赁时间、季节、是否为假期、是否为工作日、天气数字越大,天气越差、temp atemp气温、湿度、风速、普通用户、注册用户、租赁自行车数量。

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlinebike = pd.read_csv(open(r'D:\python数据分析\数据\bike.csv'))bike.head()

问题探索

研究时间段与自行车租赁的关系情况。

数据清洗

bike.isnull().sum()

查看缺失值,无缺失值。

bike.dtypes

查看数据类型,datetime字段不是时间数据类型。

bike['datetime'] = pd.to_datetime(bike['datetime'])bike.dtypes

将to_datetime函数转换为datetime类数据。

bike = bike.set_index('datetime') #将datetime字段设置为DataFrame的索引,成为时间序列数据bike.head()

bike.index #索引

bike.tail()

数据探索

y_bike = bike.groupby(lambda x: x.year).mean() # 降采样年份数据y_bike['count']

y_bike['count'].plot(kind='bar') # 绘制柱状图

2012年的租赁数据多于2011年数据。

m_bike = bike.resample('M', kind='period').mean() # 重采样到月份,类型为时期类型m_bike.head()

fig, axes = plt.subplots(2, 1)    #两行一列m_bike['2011']['count'].plot(ax=axes[0],sharex=True)  #贡献X轴m_bike['2012']['count'].plot(ax=axes[1])

2011年和2012年的趋势大致相同,前几个月逐渐增加,到5、6月份到达峰值,再到9月份后逐渐减少。

bike['day'] = bike.index.daybike['hour'] = bike.index.hour # 单独存储日和时的数据bike.head()

d_bike = bike.groupby('day')['count'].mean() #对day字段分组统计d_bike

d_bike.plot() # 自行车每日租赁数分布

h_bike = bike.groupby('hour')['count'].mean() #对hour字段分组统计h_bike

h_bike.plot() # 自行车每小时租赁数分布

图中有明显的两个峰值,都是上下班时间段,并且晚上的峰值更高。

work_bike = bike.groupby('workingday')['count'].mean()work_bike #对workingday字段分组统计

work_bike.plot(kind='bar')

天气越差,自行车租赁数越少。

weather_bike = bike.groupby('weather')['count'].mean()weather_bike #对weather字段分组统计

weather_bike.plot(kind='bar')

天气越差,自行车租赁数越少,但在极端天气情况下却略有上升。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值