当前位置: 首页 > news >正文

【51 Pandas+Pyecharts | 深圳市共享单车数据分析可视化】

文章目录

  • 🏳️‍🌈 1. 导入模块
  • 🏳️‍🌈 2. Pandas数据处理
    • 2.1 读取数据
    • 2.2 查看数据信息
    • 2.3 处理起始时间、结束时间
    • 2.4 增加骑行时长区间列
    • 2.5 增加骑行里程区间列
  • 🏳️‍🌈 3. Pyecharts数据可视化
    • 3.1 各行政区单车骑行量
    • 3.2 各行政区单车里程热图
    • 3.3 起始时间分布
    • 3.4 结束时间分布
    • 3.5 骑行里程分布
    • 3.6 骑行里程区间占比
    • 3.7 骑行时长(s)
    • 3.8 骑行时长区间占比
  • 🏳️‍🌈 4. 可视化项目源码+数据

大家好,我是 👉【Python当打之年(点击跳转)】

本期将利用Python分析「深圳市共享单车数据」 ,看看:各行政区单车骑行量、骑行里程、骑行时间分布等情况,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

🏳️‍🌈 1. 导入模块

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

🏳️‍🌈 2. Pandas数据处理

2.1 读取数据

df1 = pd.read_excel('./共享单车数据.xlsx')

在这里插入图片描述

2.2 查看数据信息

df.info()

在这里插入图片描述

2.3 处理起始时间、结束时间

df1['骑行时长(s)'] = (df1['结束时间'] - df1['起始时间']).dt.total_seconds()

2.4 增加骑行时长区间列

lables = [f'{i}-{i+5}分钟' for i in range(0, 60, 5)]+['60分钟以上']
df1['骑行时长区间'] = pd.cut(df1['骑行时长(s)'],bins=[i for i in range(0, 3601, 300)]+[10000],labels=lables)

2.5 增加骑行里程区间列

distance_transfer=df1['骑行里程(m)'].map(lambda x: x / 1000)
df1['骑行里程区间'] = pd.cut(distance_transfer,bins=[0,1,2,3,4,5,10],labels=['0-1公里','1-2公里','2-3公里','3-4公里','4-5公里','5-6公里'])

在这里插入图片描述

🏳️‍🌈 3. Pyecharts数据可视化

3.1 各行政区单车骑行量

def get_bar():bar = (Bar().add_xaxis(x_data).add_yaxis('', y_data,).set_global_opts(title_opts=opts.TitleOpts(title='1-各行政区单车骑行量',subtitle=subtitle,pos_top='2%',pos_left='center',),visualmap_opts=opts.VisualMapOpts(is_show=False,range_color=range_color,),))return bar

在这里插入图片描述

  • 福田区、龙华区、南山区的骑行订单量要远高于其他行政区
  • 光明区、盐田区骑行订单量最少

3.2 各行政区单车里程热图

def get_map():map1 = (Map().add('单车里程', data, '深圳').set_global_opts(title_opts=opts.TitleOpts(title='2-各行政区单车里程热图',subtitle=subtitle,pos_top='2%',pos_left='center',),visualmap_opts=opts.VisualMapOpts(range_color=range_color,),))return map1

在这里插入图片描述

3.3 起始时间分布

在这里插入图片描述

  • 骑行订单量在早8时和晚16时达到峰值,这两个时间正好是早晚高峰时间
    大部分的骑行订单集中在16时-20时

3.4 结束时间分布

在这里插入图片描述

3.5 骑行里程分布

def get_scatter():scatter = (Scatter().add_xaxis(x_data).add_yaxis('',y_data,label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title='5-骑行里程分布',subtitle=subtitle,pos_top='2%',pos_left='center',),visualmap_opts=opts.VisualMapOpts(is_show=False,range_color=range_color,)))return scatter

在这里插入图片描述

3.6 骑行里程区间占比

在这里插入图片描述

  • 3公里以内的骑行订单占比达到80%,其中1-2公里区间最多,占比约34%

3.7 骑行时长(s)

在这里插入图片描述

3.8 骑行时长区间占比

def get_pie():pie = (Pie().add('',[list(z) for z in zip(x_data, y_data)]).set_global_opts(title_opts=opts.TitleOpts(title='8-骑行时长区间占比',subtitle=subtitle,pos_top='2%',pos_left='center',),visualmap_opts=opts.VisualMapOpts(is_show=False,range_color=range_color,),))return pie

在这里插入图片描述

  • 15分钟以内的骑行订单占比达到78%,其中5-10分钟这个区间最多,占比约34%

🏳️‍🌈 4. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

http://www.lryc.cn/news/475577.html

相关文章:

  • 【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
  • 线程相关题(线程池、线程使用、核心线程数的设置)
  • 2181、合并零之间的节点
  • powerlaw:用于分析幂律分布的Python库
  • 工作管理实战指南:利用Jira、Confluence等Atlassian工具打破信息孤岛,增强团队协作【含免费指南】
  • JAVA语言多态和动态语言实现原理
  • 阿里云-防火墙设置不当导致ssh无法连接
  • 使用WebAssembly优化Web应用性能
  • 软件测试模型
  • 动态规划——两个数组的dp问题
  • 视频QoE测量学习笔记(二)
  • RSA算法详解:原理与应用
  • YOLOv6-4.0部分代码阅读笔记-effidehead_fuseab.py
  • 特朗普概念股DJT股票分析:为美国大选“黑天鹅事件”做好准备
  • 【MySQL】 运维篇—故障排除与性能调优:常见故障的排查与解决
  • Android R S T U版本如何在下拉栏菜单增加基本截图功能
  • C#二叉树原理及二叉搜索树代码实现
  • .eslintrc.js 的解释
  • 确保企业架构与业务的一致性与合规性:数字化转型中的关键要素与战略实施
  • goframe开发一个企业网站 前端界面 拆分界面7
  • Postman断言与依赖接口测试详解!
  • github打不开网络问题
  • 智能教育工具:基于SpringBoot的在线试题库
  • typescript 如何跳过ts类型检查?
  • 详解ReentrantLock--三种加锁方式
  • SQL 基础语法(一)
  • Python酷库之旅-第三方库Pandas(190)
  • Spring学习笔记_19——@PostConstruct @PreDestroy
  • 《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习
  • 【架构艺术】服务架构稳定性的基础保障