大数据毕业设计:python二手车数据分析可视化系统 requests爬虫 Echarts可视化 Django框架(建议收藏)✅

🍅大家好,今天给大家分享一个Python项目,感兴趣的可以先收藏起来,点赞、关注不迷路!🍅

大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。

1、项目介绍

技术栈:
python语言、Django框架、MySQL数据库、requests爬虫技术、汽车之家二手车、Echarts可视化

Python语言:作为开发语言,用于编写爬虫和后端程序。

Django框架:作为Web框架,提供了丰富的工具和组件,用于快速搭建Web应用。

MySQL数据库:用于存储二手车相关的数据。

requests爬虫技术:用于从汽车之家网站上获取二手车数据。

汽车之家二手车:作为数据来源,提供了大量的二手车信息。

Echarts可视化:用于将二手车数据进行可视化展示,以便用户更加直观地了解数据。

2、项目界面

(1)中国地图–全国各地车辆数据

在这里插入图片描述

(2)会员注册年份与等级
在这里插入图片描述

(3)二手车数据
在这里插入图片描述

(4)车辆品牌数据统计

在这里插入图片描述

(5)会员占比

在这里插入图片描述

(6)里程区间数据统计分析

在这里插入图片描述

(7)车辆购买日期分析

在这里插入图片描述

3、项目说明

这是一个使用Python语言和Django框架开发的二手车数据分析可视化系统,主要技术栈包括:

Python语言:作为开发语言,用于编写爬虫和后端程序。

Django框架:作为Web框架,提供了丰富的工具和组件,用于快速搭建Web应用。

MySQL数据库:用于存储二手车相关的数据。

requests爬虫技术:用于从汽车之家网站上获取二手车数据。

汽车之家二手车:作为数据来源,提供了大量的二手车信息。

Echarts可视化:用于将二手车数据进行可视化展示,以便用户更加直观地了解数据。

该系统的主要功能包括爬取汽车之家网站上的二手车数据、将数据存储到MySQL数据库中、根据用户输入的条件查询二手车数据、使用Echarts将数据进行可视化展示。用户可以通过Web界面进行操作和查询,轻松获取所需的二手车数据和分析结果。

4、核心代码


from pyecharts.charts import WordCloud
from pyecharts.globals import ThemeType
from pyecharts.charts import Pie
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot




# 词云图表
def getciyun(data):
    c=(
        WordCloud()
        .add(series_name="车型词云", data_pair=data, word_size_range=[6, 66])
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="车型词云", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
            ),
            tooltip_opts=opts.TooltipOpts(is_show=True),
        )
        # .render("map3d_with_bar3d.html")
    )
    # 渲染的html保存为png图片
    # make_snapshot(snapshot, c.render(), "词云图表.png")
    return c

# 品牌图表
def getchex(data):
    c = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
        .add_xaxis(["宝马","奥迪","奔驰","飞度","朗逸","凯美瑞","凯迪拉克","蒙迪欧","高尔夫","荣放"])
        # .add_xaxis(xaxis)
        .add_yaxis("品牌", data, stack="stack1", category_gap="50%")
        .set_series_opts(
            label_opts=opts.LabelOpts(
                position="right",
                # formatter=JsCode(
                #     "function(x){return Number(x.data.percent * 100).toFixed() + '%';}"
                # ),
            )
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(title="车辆品牌数据统计"),#, subtitle="经过统计分析,发现BBA的二手车品牌居多,因此购买BBA可以考虑二手车的市场"
        )
    )
    # make_snapshot(snapshot, c.render(), "品牌图表.png")
    return c


def getmemberpage(data):
    c = (
        Pie()
        .add("", data)
        .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
        .set_global_opts(title_opts=opts.TitleOpts(title="会员占比"))#, subtitle="经过统计分析,发现黄金会员占据网站的主体,高级会员人数偏少,网站可以改边营业策略以增加高级会员人数提高用户粘度"
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
        # .render("pie_set_color.html")
    )
    # make_snapshot(snapshot, c.render(), "会员占比图表.png")
    return c

#里程图表
def getmileage(data):
    c = (
    Bar()
    .add_xaxis(
        data['fw']
    )
    .add_yaxis("区间数量 ", data['count'])
    # .add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
        title_opts=opts.TitleOpts(title="里程区间数据统计"),#, subtitle="经过统计分析,发现二手车的使用里程1万公里以下,其中0-2千公里的车辆占比46%,对于想要买来用来代步的买家可以考虑二手的市场"
    )
    # .render("bar_rotate_xaxis_label.html")
    )
    # make_snapshot(snapshot, c.render(), "里程图表.png")
    return c
    # pass

#价格图表
def getjiage(data):
    c = (
    Bar()
    .add_xaxis(
        data['fw']
    )
    .add_yaxis("价格区间", data['count'])
    # .add_yaxis("商家B", [20, 10, 40, 30, 40, 50])
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
        title_opts=opts.TitleOpts(title="二手车价格区间"),#, subtitle="经过统计分析,发现价格在0-48万的价格的二手车居多,因此考虑低端和中端车的买家可以关注二手车市场"
    )
    # .render("bar_rotate_xaxis_label.html")
    )
    # make_snapshot(snapshot, c.render(), "价格图表.png")
    return c
# getmemberpage(None)

def getshuangzhu(data):
    # print(data.columns)
    datasplit=data.信息.str.split('/').apply(lambda x:pd.Series(x))
    # print(type(datasplit))
    datasplit.columns=['表显里程','上牌时间','车辆所在地','会员']
    datasplit=datasplit.会员.str.split('年')
    data=[]
    for i in datasplit:
        try:
            if type(i) is list and len(i)>1:
                data.append(i)
        except BaseException as e:
            print(e)
            print(i)

    data=pd.DataFrame(data)
    data.columns=['年','类型']
    print(data)
    data=data.groupby(['类型','年'])

    xaxis={}
    会员=[]
    钻石会员=[]
    黄金会员=[]
    黑金会员=[]
    print(f'ffdaf:{type(data)}')

    for i in data:
        print(i[0])
        xaxis[f'{i[0][1]}年']=0
        print(f'年:{i[0][1]} 会员类型:{i[0][0]} 个数:{len(i[1])}')
        htype=i[0][0]
        index=int(i[0][1])-1
        year=int(i[0][1])
        # index=year
        if htype=='会员':
            会员.extend([0 for i in range(year)])
            print(会员)
            print(index)
            # 会员.append(len(i[1]))
            会员[index]=len(i[1])
            print('添加会员')
        if htype=='钻石会员':
            钻石会员.extend([0 for i in range(year)])
            # 钻石会员.append(len(i[1]))
            print(钻石会员)
            钻石会员[index]=len(i[1])
            print('添加钻石会员')
        if htype=='黄金会员':
            黄金会员.extend([0 for i in range(year)])
            # 黄金会员.append(len(i[1]))
            # 黄金会员.append(len(i[1]))
            黄金会员[index]=len(i[1])
            print('添加黄金会员')
        if htype=='黑金会员':
            黑金会员.extend([0 for i in range(year)])
            # 黑金会员.append(len(i[1]))
            # 黑金会员.append(len(i[1]))
            黑金会员[index]=len(i[1])
            print('添加黑金会员')

源码获取:

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值