全ython数据分析单车租赁数据分析租赁情况.docx
《全ython数据分析单车租赁数据分析租赁情况.docx》由会员分享,可在线阅读,更多相关《全ython数据分析单车租赁数据分析租赁情况.docx(9页珍藏版)》请在冰点文库上搜索。
全ython数据分析单车租赁数据分析租赁情况
ython数据分析,单车租赁数据分析,租赁情况
本节选取自行车的租赁数据,利用numpy、pandas、matplotlib三个库,数据清洗后,做数据分析,研究时间段与自行车租赁的关系。
数据来源
本节以自行车的租赁数据为例,数据来源于网络,利用时间序列分析的方法,通过可视化技术,分析自行车租赁随时间及天气变化的分布情况,其中datetime、season、holiday、workingday、weather、temp、atemp、humidity、windspeed、casual、registered、count字段分别代表租赁时间、季节、是否为假期、是否为工作日、天气数字越大,天气越差、tempatemp气温、湿度、风速、普通用户、注册用户、租赁自行车数量。
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt
%matplotlibinline
bike = 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.day
bike['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')
天气越差,自行车租赁数越少,但在极端天气情况下却略有上升。