【57 Pandas+Pyecharts | 交通事故数据分析可视化】

金融供应链数据挖掘实战

Python 解析 FactSet Revere,手把手构建供应链月度面板数据


大家好,我是 👉 【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 读取数据

df = pd.read_excel('./交通事故数据集.xlsx')

在这里插入图片描述

2.2 查看数据信息

df.info()

在这里插入图片描述

2.3 去除空数据

df = df.dropna()

2.4 去除重复数据

df = df.drop_duplicates()

2.5 删除不负责任的数据

df = df[~(df['责任划分'] == '不负责任')]

2.6 时间数据处理

df['事故时间_年'] = df['时间_td'].dt.year
df['事故时间_月'] = df['时间_td'].dt.month
df['事故时间_日'] = df['时间_td'].dt.day
df['事故时间_时'] = df['时间_td'].dt.hour

2.6 驾驶员出生日期数据处理

df1['驾驶员出生日期_年'] = df1['驾驶员出生日期_年'].astype('int')
df1['驾驶员年龄'] = df1['事故时间_年'] - df1['驾驶员出生日期_年']

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

3.1 交通事故时间分布

def get_line1():
    chart = (
        Line()
        .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',
                title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color,
            ),
        )    
  )

在这里插入图片描述

3.2 交通事故一月各天分布

在这里插入图片描述

  • 一个月的数据中每天发生交通事故的数量差异不是很大。

3.3 交通事故小时分布

def get_line3():
    chart = (
        Line()
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='3-交通事故小时分布',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
                title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color,
            ),
        )
    )

在这里插入图片描述

  • 上图可以看出:交通时间基本集中在早上8时-下午20时,原因应该是白天出行人流量比较大,事故发生率比较高。

3.4 交通事故车辆颜色TOP10

def get_bar():
	chart = (
	    Bar()
	    .add_xaxis(x_data)
	    .add_yaxis('', y_data,label_opts=opts.LabelOpts(position='right'))
	    .set_global_opts(
	        title_opts=opts.TitleOpts(
	            title='4-交通事故车辆颜色TOP10',
	            subtitle=subtitle,
	            pos_top='2%',
	            pos_left='center',
	            title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
	        ),
	        legend_opts=opts.LegendOpts(is_show=False)
	    )
	)

在这里插入图片描述

  • 交通事故车辆颜色:白色(9364起)、黑色(3098起)、银色(2068起)、红色(1564起)、蓝色(1022起)

3.5 交通事故起因

在这里插入图片描述

  • 交通事故原因最多的是未按规定让行的事故(7188起),其次是追尾的(5153起),以及倒车的(1611起)等等。

3.6 交通事故责任划分占比

def get_bar():
	chart = (
	   Pie()
	    .add('',
	         datas,
	         center=['50%', '55%'],
	         label_opts=opts.LabelOpts(formatter='{b}: {c} ({d}%)')
	        )
	    .set_global_opts(
	        title_opts=opts.TitleOpts(
	            title='6-责任划分占比',
	            subtitle=subtitle,
	            pos_top='2%',
	            pos_left='center',
	            title_textstyle_opts=opts.TextStyleOpts(color=lab_color, font_size=20)
	        ),
	    )    
    )

在这里插入图片描述

  • 负全部责任事故约占比:91%(16765起),负同等责任事故约占比:9%(1665起)。

3.7 性别占比

def get_scatter1():
    scatter1 = (
        Scatter()
        .add_xaxis(x_data)
        .add_yaxis('', y_data,
                  )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='7-负利润行业数量',
                subtitle=subtitle,
                pos_top='2%',
                pos_left="center",
            ),
            visualmap_opts=opts.VisualMapOpts(
                type_='size',
            ),
        )
    )

在这里插入图片描述

  • 男性事故约占比:93%(17149起),女性事故约占比:7%(1281起)。

3.8 驾驶员年龄分布

在这里插入图片描述

3.9 驾驶员驾龄区间分布

在这里插入图片描述

  • 5-15年驾龄区间出现事故的数量较其他驾龄区间高,1年以下驾龄的新手出现事故的数量是最低的。

3.10 车辆品牌词云

def get_wordcloud(x_data,y_data):
	wordcloud = (
	    WordCloud()
	    .add(series_name="", data_pair, word_size_range=[5, 45])
	    .set_global_opts(
	        title_opts=opts.TitleOpts(
	            title='10-车辆品牌词云',
	            subtitle=subtitle,
	            pos_top='1%',
	            pos_left="1%",
	        )
	    )
	)

在这里插入图片描述

  • 交通事故最多的10大汽车品牌:长安、五菱、大众汽车、丰田、雪佛兰、别克、解放、福克斯、北京现代、东风标致

🏳️‍🌈 4. 可视化大屏

4.1 普通大屏

在这里插入图片描述

4.2 Flask大屏

在这里插入图片描述

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

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


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

金融供应链数据挖掘实战

Python 解析 FactSet Revere,手把手构建供应链月度面板数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值