需要源码和数据集请点赞关注收藏后评论区留言私信~~~
下面以自行车租赁统计数据为例,使用Pandas中的时间序列分析方法,探究自行车租赁数据随时间以及天气变化的分布情况,数据来自Kaggle网站
1:导入模块
复制代码
1
2
3
4
5
6
7import numpy as np import pandas as pd import datetime import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize = (10,8)) %matplotlib inline
2:获取数据 导入待处理数据bike.csv 并显示前五行
复制代码
1
2bike = pd.read_csv('data//bike.csv') bike.head()
3:分析数据
首先查看有无缺失值
复制代码
1bike.isnull().sum()
然后查看待处理数据的数据类型
复制代码
1bike.info()
然后将字段datetime的类型转换为日期时间
复制代码
1
2bike.datetime = pd.to_datetime(bike.datetime) bike.dtypes
先从数值型数据入手,可以看出租赁额(count)数值差异大,所以希望观察一下它们的密度分布
复制代码
1
2sns.distplot(bike["count"]) # plt.plot(s.index,s.values)#作图
从运行结果发现 有长尾现象
显示count字段的描述信息
复制代码
1bike["count"].describe()
将count列中小于第一四分位数的数据删除 并绘制对应的密度图
复制代码
1
2
3
4
5
6
7
8
9def Count(x): if x <42: return np.nan else: return x bike1 = bike bike1["count"] = bike1["count"].apply(Count) bike1 = bike1.dropna(axis=0, how='any') sns.distplot(bike1["count"])
对数据进行处理后长尾现象有所改善
接下来绘制按年份统计自行车租赁数均值的直方图
复制代码
1y_bike.plot(kind='bar',rot = 0)
重采样 按月进行分析汇总
复制代码
1
2mm_bike = bike.resample('M',kind = "period").mean() mm_bike.head()
然后按月统计数据的绘图
复制代码
1
2mm_bike.plot() plt.legend(loc = "best",fontsize = 8)
绘图观察哪个月份自行车的租赁数目最大
复制代码
1
2m_bike.plot() plt.grid()# 9月份达到最大值
从图中可以看出 9月份自行车租赁数最多
分析每天不同时间自行车租赁数量的变化
复制代码
1h_bike.plot("bar",rot = 0)
从图中可以发现 每天八点和十七点自行车租赁数量最多 对应这个时候上下班和上下学的人数较多
接下来分析季节对租赁数额的影响
复制代码
1
2
3season_bike = bike.groupby(bike.season).mean()['count'] season_bike season_bike.plot(kind = "bar",rot = 0)
接下来分析温度对租赁数额的影响
复制代码
1
2
3temp_bike = bike.groupby([bike.temp]).mean()['count'] temp_bike.sample(10) temp_bike.plot()
然后分析风速对租赁数额的影响
复制代码
1
2wind_bike_sort = wind_bike.sort_values(ascending=False) wind_bike_sort.head(20).plot(kind="bar",rot = 60)
最后分析天气对租赁数额的影响
复制代码
1
2weather_bike = bike.groupby(bike.weather).mean()['count'] weather_bike.plot(kind='bar',rot = 0)
创作不易 觉得有帮助请点赞关注收藏~~~
最后
以上就是威武镜子最近收集整理的关于利用Pandas探究自行车租赁随时间及天气变化的分布情况并可视化(附源码 超详细)的全部内容,更多相关利用Pandas探究自行车租赁随时间及天气变化的分布情况并可视化(附源码内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复