背景介绍

随着我国的经济迅速发展,城市人口急剧增加,随之带来的是一系列的问题,交通拥堵,环境受到破坏,发展公共交通可以完美的解决现在我们面临的这些问题,自行车具有机动灵活、低碳环保的优点,如果自行车可以取代现在的机动车,那么道路就不会那么拥挤,人们的出行效率就会大大提升,汽车废气的排放量也将大大的减少,环境的质量也会提升。同时,为了完美的解决从地铁站到公司、从公交站到家的“最后一公里”路程,共享单车应运而生.

共享单车有效的解决了“走路累,公交挤,开车堵,打车贵”的苦恼。一夜之间,北上广深、甚至部分二线城市,共享单车大街小巷随处可见。继2016年9月26日ofo单车宣布获得滴滴快车数千万美元的战略投资,双方将在共享单车领域展开深度合作之后,摩拜单车也于2017年1月完成D轮2.15亿美元(约合人民币15亿元)的融资,国内共享单车更加火爆,最近一张手机截屏蹿红网络。在这张截图上,24个共享单车应用的图标霸满了整个手机屏幕,真的是“一图说明共享单车的激烈竞争”。而在街头,仿佛一夜之间,共享单车已经到了“泛滥”的地步,各大城市路边排满各种颜色的共享单车。共享经济的不断发展逐渐的改变着人们的日常生活,共享精神也逐渐深入人心。

数据来源(已更新)

CSDN下载
https://download.csdn.net/download/qq_40507857/13191475

python源代码

# 1.导包操作:科学计算包numpy,pandas,可视化matplotlib,seaborn
import numpy as np  # 导入numpy并重命名为np
import pandas as pd  # 导入pandas并重命名为pdfrom pylab import mplmpl.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体from datetime import datetime
import calendarimport matplotlib.pyplot as plt
import seaborn as sn# weekday方法:日期--》星期值(整数,下标从0开始)
# strptime方法:字符串--》日期
# day_name方法:星期值--》星期(字符串)
# month_name方法:月份值--》月份(字符串)
# month方法:日期--》月份值(整数)(1-12)
# map方法:根据对应字典产生映射# 2. 数据采集/查看和处理
def collect_and_process_data():# 2.1 数据读取bikedata = pd.read_csv('train.csv')# 2.2 数据查看print(bikedata.shape)  # 查看数据print(bikedata.head(5))  # 查看数据的前5行print(bikedata.dtypes)  # 查看数据类型# 2.3数据提取# 2.3.1提取年月日# 对datetime这一列应用匿名函数:# x表示datetime这一列数据# x.split()以空格符分割,返回字符串列表# x.split()[0]取出列表的第一个元素bikedata['date'] = bikedata.datetime.apply(lambda x: x.split()[0])  # 添加一列:date# 2.3.2提取小时bikedata['hour'] = bikedata.datetime.apply(lambda x: x.split()[1].split(':')[0])# 2.3.3 在年月日的基础上提取星期几(格式化字符串)bikedata['weekday'] = bikedata.date.apply(lambda dateString: calendar.day_name[datetime.strptime(dateString, '%Y/%m/%d').weekday()])# 2.3.4 在年月日的基础上提取月份值bikedata['month'] = bikedata.date.apply(lambda dateString: calendar.month_name[datetime.strptime(dateString, "%Y/%m/%d").month])# 2.4 数据转换# 2.4.1 将season转换为英文季节值bikedata['season'] = bikedata.season.map({1: 'spring', 2: 'summer', 3: 'fall', 4: 'winter'})# 2.4.2 将以下变量转化成分类变量print(bikedata)varlist = ['hour', 'weekday', 'month', 'season', 'holiday', 'workingday']for x in varlist:bikedata[x] = bikedata[x].astype('category')  # astype 改变数据类型print(bikedata.dtypes)# 2.4.3删除无意义的列bikedata.drop('datetime', axis=1, inplace=True)# 2.5数据清洗# 2.5.1查看数据缺失print(bikedata.describe())# 2.5.2查看是否有异常值fig, axes = plt.subplots(nrows=2, ncols=2)fig.set_size_inches(12, 12)  # 重设大小,单位:英寸# v垂直 h水平# 绘制箱型图sn.boxplot(data=bikedata, y='count', orient='v', ax=axes[0][0])sn.boxplot(data=bikedata, x='season', y="count", orient='v', ax=axes[0][1])sn.boxplot(data=bikedata, x='hour', y="count", orient='v', ax=axes[1][0])sn.boxplot(data=bikedata, x='workingday', y="count", orient='v', ax=axes[1][1])# 设置横坐标、纵坐标、标题axes[0][0].set(ylabel="骑行人数", title="骑行人数")axes[0][1].set(ylabel="骑行人数", xlabel="季节", title="各季节骑行人数")axes[1][0].set(ylabel="骑行人数", xlabel="时间段", title="各时间段骑行人数")axes[1][1].set(ylabel="骑行人数", xlabel="是否工作日", title="工作日和非工作日骑行人数")plt.savefig('collect_and_process_data.png')  # 保存图片plt.show()  # 显示图片# 2.5.3剔除异常数据print(np.abs(bikedata["count"] - bikedata["count"].mean()))print(3 * bikedata["count"].std())print(np.abs(bikedata["count"] - bikedata["count"].mean()) <= (3 * bikedata["count"].std()))processed_data = bikedata[np.abs(bikedata["count"] - bikedata["count"].mean()) <= (3 * bikedata["count"].std())]print(processed_data)processed_data.to_csv('processed_data.csv')return processed_data# 3. 数据分析与可视化(不同月份的骑行月份分析)
def Data_Analysis_and_Visualization_month(bikedata):fig, axes = plt.subplots()fig.set_size_inches(12, 20)sortOrder = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October","November", "December"]# 判断每个月份有几条记录,并按由大到小顺序排序monthAggregated = pd.DataFrame(bikedata.groupby("month")["count"].mean()).reset_index()# print(monthAggregated)monthSorted = monthAggregated.sort_values(by="count", ascending=False)  # 按月份从小到大排序# print(monthSorted)# 绘制柱状图sn.barplot(data=monthSorted, x="month", y="count", order=sortOrder)axes.set(xlabel="月份", ylabel="平均骑行人数", title="不同月份的骑行人数")plt.savefig('result_month.png')# plt.show()# 4. 数据分析与可视化(不同时间的骑行时间)
def Data_Analysis_and_Visualization_hour(bikedata):fig, ax = plt.subplots()fig.set_size_inches(12, 20)hueOrder = ['Sunday', 'Monday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']# 一周内不同时间的骑行人数hourAggregated = pd.DataFrame(bikedata.groupby(['hour', 'weekday'])['count'].mean()).reset_index()print(hourAggregated)# 绘制折线图sn.pointplot(x=hourAggregated['hour'], y=hourAggregated['count'], hue=hourAggregated['weekday'], hue_order=hueOrder,data=hourAggregated)ax.set(xlabel='时间', ylabel='骑行人数', title='一周内不同时间的骑行人数')plt.savefig('result_hour.png')plt.show()# 主函数
def main():# 数据采集/查看和处理processed_data = collect_and_process_data()# 数据分析与可视化:月份Data_Analysis_and_Visualization_month(processed_data)# 数据分析与可视化:小时Data_Analysis_and_Visualization_hour(processed_data)# 主程序
if __name__ == '__main__':main()

分析结果

数据查看

数据分析与可视化(骑行月份分析)

数据分析与可视化(骑行时间分析)

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. 数据分析实战项目2:优衣库销售数据分析

    目录 优衣库销售数据分析 1.需求和数据加载 2.不同种类产品的销售情况 2.1 不同产品的销售情况 3.用户的消费方式(线上or线下) 4.用户的消费习惯(周间or周末) 5.销售额和成本之间的关系 ...

  8. python爬上市公司信息_实战项目 1:5 行代码爬取国内所有上市公司信息

    实战项目 1:5 行代码爬取国内所有上市公司信息 Python入门爬虫与数据分析 在正式开始这门专栏课的学习之前,我们先来看一个简单的爬虫案例.兴趣是最好的老师,当你对爬虫产生兴趣的时候,才会更有动力 ...

  9. python入门新手项目-Python入门实战项目有哪些适合新手?

    Python入门实战项目有哪些适合新手?目前市面上有很多适合新手的Python入门练手项目,Python入门需要理论与实践相结合,前面夯实基础知识,后面通过实战项目帮助你更好的运用这些Python知识 ...

最新文章

  1. 半吊子架构师,一来就想干掉RabbitMQ ...
  2. python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用grey灰色映射、将不同亮度映射到不同的色彩、并添加颜色标尺
  3. 2.2基本算法之递归和自调用函数_你为什么学不会递归?读完这篇文章轻松理解递归算法...
  4. 解构电商产品——订单系统(一)
  5. 信息系统项目管理师:第6章:项目进度管理(2)-章节重点汇总
  6. Unity2D 小游戏之 RocketMouse
  7. centos7安装samba遇到的问题
  8. web.xml/servlet过滤器之压缩UrlRewriteFilter
  9. 3.15PMP试题每日一题
  10. 2021年认证杯SPSSPRO杯数学建模D题(第一阶段)停车的策略全过程文档及程序
  11. qart 图形二维码 html2canvas下载二维码
  12. AMD OpenCL Programming Guide - OpenCL Architecture
  13. IDEA社区版配置Tomcat
  14. android 平板怎么截图,小米平板4怎么截图 小米平板4截屏的三种方法
  15. 微信公众号申请需要哪些材料
  16. 等额本金等额本息计算器
  17. 零基础go还是python_零基础学习Python的经验之谈
  18. 游戏黑客圣经GHB1学习笔记 part4(16-20)
  19. MSVS2008和VS2010的痛苦加装
  20. 育儿心得-红脸,白脸

热门文章

  1. 蓝桥杯练习题十六进制转十进制
  2. LeetCode Subarray Sum Equals K
  3. MySQL重置root用户密码的方法【亲测可用】
  4. IFRAME jquery 获取document对象
  5. Javascript中call的使用
  6. PHP 和 ASP.NET的优势和弱点
  7. 计算机机等级考试四级模拟,《全国计算机等级考试上机考试模拟考场-四级》.pdf...
  8. kali linux 编码,Kali Linux 2019.4解决中文乱码问题
  9. python矩阵sin计算器_Python-Numpy科学计算器的基本软件包
  10. flink 5-窗口和时间