背景介绍

  • 随着我国的经济迅速发展,城市人口急剧增加,随之带来的是一系列的问题,交通拥堵,环境受到破坏,发展公共交通可以完美的解决现在我们面临的这些问题,自行车具有机动灵活、低碳环保的优点,如果自行车可以取代现在的机动车,那么道路就不会那么拥挤,人们的出行效率就会大大提升,汽车废气的排放量也将大大的减少,环境的质量也会提升。同时,为了完美的解决从地铁站到公司、从公交站到家的“最后一公里”路程,共享单车应运而生. 共享单车有效的解决了“走路累,公交挤,开车堵,打车贵”的苦恼。一夜之间,北上广深、甚至部分二线城市,共享单车大街小巷随处可见。继2016年9月26日ofo单车宣布获得滴滴快车数千万美元的战略投资,双方将在共享单车领域展开深度合作之后,摩拜单车也于2017年1月完成D轮2.15亿美元(约合人民币15亿元)的融资,国内共享单车更加火爆,最近一张手机截屏蹿红网络。在这张截图上,24个共享单车应用的图标霸满了整个手机屏幕,真的是“一图说明共享单车的激烈竞争”。而在街头,仿佛一夜之间,共享单车已经到了“泛滥”的地步,各大城市路边排满各种颜色的共享单车。共享经济的不断发展逐渐的改变着人们的日常生活,共享精神也逐渐深入人心。

数据来源

数据链接:https://pan.baidu.com/s/11Gpq2-0z_E0ilNTm7Wt7vw
提取码:1whs
复制这段内容后打开百度网盘手机App,操作更方便哦

import pandas as pd
import calendar
from datetime import datetime
import matplotlib.pyplot as plt
import seaborn as sn
import numpy as np
from pylab import mplmpl.rcParams['font.sans-serif'] = ['Simhei']def collect_and_process_data():bikedata = pd.read_csv("train.csv")# 数据提取# 提取年月日bikedata['date'] = bikedata.datetime.apply(lambda x: x.split()[0])# 提取小时bikedata['hour'] = bikedata.datetime.apply(lambda x: x.split()[1].split(":")[0])# 在年月日的基础上提取星期数(需要格式化日期)day_name 转化为英文名称bikedata['weekday'] = bikedata.date.apply(lambda dateString: calendar.day_name[datetime.strptime(dateString, '%Y/%m/%d').weekday()])# print(bikedata)# 在年月日的基础上提取月份  month_name 转化为英文名称bikedata["month"] = bikedata.date.apply(lambda dateString: calendar.month_name[datetime.strptime(dateString, '%Y/%m/%d').month])# 数据转化# 将season数字转化为英文季节值bikedata["season"] = bikedata.season.map({1: "Spring", 2: "Summer", 3: "Fall", 4: "Winter"})# print(bikedata)# 将以下变量转化为分类变量varlist = ['hour', 'weekday', 'month', 'season', 'holiday', 'workingday']for x in varlist:bikedata[x] = bikedata[x].astype('category')# print(bikedata.dtypes)# 删除无意义的变量bikedata.drop('datetime', axis=1, inplace=True)# print(bikedata)# 数据清洗# 查看是否缺失数据#print(bikedata.describe())# 查看是否有异常值fig, axes = plt.subplots(nrows=2, ncols=2)fig.set_size_inches(12,12)sn.boxplot(data=bikedata, y='count', orient='v', ax=axes[0][0])sn.boxplot(data=bikedata, y='count', x='season', orient='v', ax=axes[0][1])sn.boxplot(data=bikedata, y='count', x='hour', orient='v', ax=axes[1][0])sn.boxplot(data=bikedata, y='count', x='workingday', orient='v', ax=axes[1][1])#     # plt.show()axes[0][0].set(ylabel='骑行人数', title='骑行人数')axes[0][1].set(xlabel='季节', ylabel='骑行人数', title='不同季节的骑行人数')axes[1][0].set(xlabel='时间', ylabel='骑行人数', title='一天内不同时间骑行人数')axes[1][1].set(xlabel='工作日', ylabel='骑行人数', title='工作日骑行人数')plt.savefig('Abnormal_value_analysis.png')# plt.show()# 剔除数据bikedata1 = bikedata[np.abs(bikedata["count"] - bikedata["count"].mean()) <= (3 * bikedata["count"].std())]# print("剔除前数据记录:", bikedata.shape, "\n剔除前数据记录:", bikedata1.shape)bikedata1.to_csv('processed_data.csv')return bikedata1def Data_Analysis_and_Visualization_month(bikedata):# 判断每个月份有几条记录,并按由大到小顺序排序monthAggregated = pd.bikedata(bikedata.groupby("month")["count"].mean()).reset_index()# print(monthAggregated)monthSorted = monthAggregated.sort_values(by="count", ascending=False)# print(monthSorted)fig, axes = plt.subplots()fig.set_size_inches(12, 20)sortOrder = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October","November", "December"]sn.barplot(data=monthSorted, x="month", y="count", order=sortOrder)axes.set(xlabel="月份", ylabel="平均骑行人数", title="不同月份的骑行人数")plt.savefig('result1.png')plt.show()def Data_Analysis_and_Visualization_hour(bikedata):# 一周内不同时间的骑行人数hourAggregated = pd.DataFrame(bikedata.groupby(["hour", "weekday"])["count"].mean()).reset_index()print(hourAggregated)fig1, ax1 = plt.subplots()fig1.set_size_inches(12, 20)hueOrder = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]sn.pointplot(x=hourAggregated["hour"], y=hourAggregated["count"], hue=hourAggregated["weekday"], hue_order=hueOrder,data=hourAggregated)ax1.set(xlabel="时间", ylabel="骑行人数", title="一周内不同时间的骑行人数")plt.savefig("result2.png")plt.show()# 主函数
def main():# 数据采集\查看和处理bikedata1 = collect_and_process_data()# 数据分析与可视化1Data_Analysis_and_Visualization_month(bikedata1)# 数据分析与可视化2Data_Analysis_and_Visualization_hour(bikedata1)if __name__ == '__main__':main()

可视化结果:




源码链接:https://pan.baidu.com/s/1du9KnHUTn6Z3N9-Jx-BelA
提取码:okek
复制这段内容后打开百度网盘手机App,操作更方便哦

Python数据分析项目-共享单车骑行数据分析相关推荐

  1. Python数据分析实战项目-共享单车骑行数据分析

    背景介绍 随着我国的经济迅速发展,城市人口急剧增加,随之带来的是一系列的问题,交通拥堵,环境受到破坏,发展公共交通可以完美的解决现在我们面临的这些问题,自行车具有机动灵活.低碳环保的优点,如果自行车可 ...

  2. 基于数据挖掘的共享单车骑行数据分析与预测

    温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目背景 共享单车系统在大城市越来越流行,通过提供价格合理的自行车租赁,让人们可以享受在城市里骑自行车的乐趣, ...

  3. 共享单车骑行数据分析数据来源

    背景介绍 随着我国的经济迅速发展,城市人口急剧增加,随之带来的是一系列的问题,交通拥堵,环境受到破坏,发展公共交通可以完美的解决现在我们面临的这些问题,自行车具有机动灵活.低碳环保的优点,如果自行车可 ...

  4. 特征因子是什么意思_【空间分析】地理探测器应用-分异及因子探测、交互作用探测(共享单车骑行目的地时空特征与影响因素)...

    广州市主城区共享单车骑行目的地时空特征与影响因素 地理研究 高枫 刘小平等 2019 python是个好东西,爬虫也是个技术活. 以往研究不足: l 少有研究主要关注共享单车骑行的目的地时空分布及其影 ...

  5. python共享单车数据分析_数据分析_共享单车骑行时间分析-zeropython

    数据分析一共分为五个任务: 第一步:明确分析的任务 分析出每个季度的骑行的平均时长和各个季度的对比 第二步:数据处理 先看数据: shell 查看csv 数据前十行 ➜ data cat bikesh ...

  6. 基于Android地图的共享单车骑行系统

    app: 1.登陆注册功能 2.显示 附近的共享单车租赁点 3.扫码或者输入编号开锁 4.车辆报修反馈 5.结束后 点击结束骑行 显示需要支付的金额 6.行程记录 起始点 终点 以及金额的显示 本单车 ...

  7. 拉钩作业:Bikeshare数据集 预测共享单车骑行量

    原始数据集地址: http://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset 文件说明 day.csv: 按天计的单车共享次数(作业只需使用 ...

  8. 单车骑行红叶谷70KM

    8月份就制定好的单车骑行红叶谷计划终于实现了, 全程70km左右. 下面是旅行照片: 1.北胡吃早饭 2.讨论行进路线. 3.路边鱼塘 4.鱼塘 5.路边休息 6.恬静的小山村 7.村落 8.不知名的 ...

  9. 数据分析项目:CDNOW用户消费数据分析(基于MySQL实现)

    CDNow网站销售数据分析 项目背景 分析目的及思路 数据处理 数据导入 数据清洗 1.字段空格处理 2.数据类型转换 3.缺失数据处理 4.数据重复处理 5.数据0值 数据分析 产品销售分析 产品价 ...

最新文章

  1. Android Wear开发者预览版入门
  2. 万维钢_《高手——精英的见识和我们的时代》读书笔记_1
  3. 微信的行程卡服务器异常,行程卡打不开服务器崩了解决方法 行程卡短信查询步教程...
  4. C++最大数的幂 largest power实现算法(附完整源码)
  5. python log文件如何不写入syslog_Centos下python 对syslog重写进行日志记录
  6. php中$stu_by,PHP基础案例二:计算学生年龄
  7. python--采集1(urllib模块)
  8. 推荐一款焦点图jQuery插件 SlidesJs
  9. 读书笔记:陈希孺:概率论与数理统计:2014.01.02
  10. NotImplementedError: Invalid CAN Bus Type - None
  11. 词形还原(lemmatization)与词干提取(stemming)的区别
  12. 2021年N2观光车和观光列车司机考试内容及N2观光车和观光列车司机模拟考试题库
  13. 前端程序员开发技术栈(前端干货)
  14. 设置PPT幻灯版自动翻页播放
  15. 2022年湖南省临床执业医师考试第四单元随机模拟题
  16. css-隐藏滚动条并可以滚动内容
  17. Android平台png转jpg的实现
  18. NMS、soft NMS、softer NMS与IOU-Guided NMS
  19. How to use template
  20. Google PR值原理和详细解说

热门文章

  1. 关于Flash的几点思考(Thoughts on Flash)
  2. Doevent()理解
  3. EM期望最大化算法实现二项混合分布与高斯混合分布
  4. “苏宁秒送”,苏宁易购探索新零售的有力武器
  5. 打瓶颈,破性能,性能大牛教你怎么玩转性能测试
  6. 平均差误法中存在哪些误差?如何平衡这些误差?|小白心理-312/347考研答疑
  7. Android开发之获取手机运行时间
  8. 你知道我国一共赠送了多少只熊猫给外国吗?来看看这个数据可视化项目
  9. 8口千兆二层非网管工业以太网交换机千兆8口工业交换机
  10. 微软C/C++编译器选项