【利用二手车数据进行可视化分析】
利用二手车数据进行可视化分析
- 查看原始数据
- 去除重复数据
- 需求分析
- 1.统计全国总共有多少量二手车,用KPI图进行展示
- 2.统计安徽总共有多少量二手车,用KPI图进行展示
- 3.统计合肥总共有多少量二手车,用KPI图进行展示
- 4.取最贵的10辆二手车信息,用列表图展示
- 5.各品牌二手车数量,取Top10用饼图展示
- 6.各品牌价格最贵的二手车
- 7.各品牌价格最低的二手车
- 8.各城市二手车数量,取Top10用饼图展示
- 9.几几年款的二手车平均价格走势,取最近10年的数据用折线图展示
- 10.统计每座城市二手车数量,并通过地图展示
- 利用生成的表在FineBI中绘图
- 链接数据库
- 传入数据库中的表
- 新建分析进行绘图
查看原始数据
查看MySQL中爬取完成的数据发现有十万多条,接下来清理一下这些数据看看有没有重复的数据将这些数据剔除

select car_id from car_info group by car_id
可以看到不重复的数据有七万多条,有将近三万条的重复数据,接下来就去除这些重复数据

去除重复数据
先查看一下重复的数据是什么样的
查看一下重复车型的car_id 有好多重复10次以上 复制一些看看这些车的信息
select car_id,count(*) cnt
from car_info
group by car_id
having cnt>2
order by cnt descc6a6fa03344447c1
d6d5b6c63184f41cselect * from car_info where car_id = 'c6a6fa03344447c1'


可以看到一些一样的车不止挂在一个地方而是挂在离一个城市周边的地区都会挂牌,导致重复的数据很高,现在我们根据车辆的一些信息分类然后将数据进行清洗。
按照车型,公里数,首付,总价这些车子定量不变的信息进行分类,可以看到清洗出来了8万条数据,这些数据都是不相同的,因为有些车子虽然car_id相等 但是车子的型号等信息不相等。
# 去除重复数据
select car_id,car_info,car_year,car_mile,car_price_total,car_price_pyment
from car_info
group by car_id,car_info,car_year,car_mile,car_price_total,car_price_pyment

接着将清洗好的数据保存到另一张表下,避免修改源数据,
# 将清洗好的数据保存在另外一张表下 因为使用group分组 所以用max就可以很容易取到city
create table if not exists car_detail as
(select car_id,car_info,car_year,car_mile,car_price_total,car_price_pyment,max(city_name) as city,max(city_code) as city_code,max(created_at) as creat_time,max(updated_at) as update_time
from car_info
group by car_id,car_info,car_year,car_mile,car_price_total,car_price_pyment)

需求分析
画图需要使用python绘图或者使用专用软件绘图
使用python绘图可以使用pyecharts
这里我使用软件fineBI绘图
1.统计全国总共有多少量二手车,用KPI图进行展示
create table if not exists ques1 as
(select count(distinct car_id) as all_car
from car_detail)
2.统计安徽总共有多少量二手车,用KPI图进行展示
create table if not exists ques2 as
(select count(distinct car_id) as anhui_car
from car_detail
where city_code in ('hf','wuhu','bengbu','bozhou','hn','mas','huaibei'
,'tongling','anqing',"huangshan",'chuzhou','chizhou','fy','suzhou','la','xuancheng'))
3.统计合肥总共有多少量二手车,用KPI图进行展示
create table if not exists ques3 as
(select count(distinct car_id) as hf_car
from car_detail
where city_code = 'hf')
4.取最贵的10辆二手车信息,用列表图展示
create table if not exists ques4 as
(select city,car_info,car_id,car_mile,car_price_total
from car_detail
order by car_price_total desc
limit 10)
5.各品牌二手车数量,取Top10用饼图展示
create table if not exists ques5 as
(select bend,count(*) as cont
from
(# SUBSTRING_INDEX(str,delim,count) 类似与split的函数
select SUBSTRING_INDEX(t1.car_info,'-',1) as bend
from car_detail as t1) as tt1
group by bend
order by cont desc
limit 10)
6.各品牌价格最贵的二手车
create table if not exists ques6 as
(select bend,ROUND(max(tt1.car_price_total),2) as max_price
from (select SUBSTRING_INDEX(t1.car_info,'-',1) as bend,t1.car_price_total
from car_detail as t1) as tt1
group by tt1.bend
order by max_price desc)
7.各品牌价格最低的二手车
create table if not exists ques7 as
(select bend,ROUND(min(tt1.car_price_total),2) as min_price
from (select SUBSTRING_INDEX(t1.car_info,'-',1) as bend,t1.car_price_total
from car_detail as t1) as tt1
group by tt1.bend
order by min_price)
8.各城市二手车数量,取Top10用饼图展示
create table if not exists ques8 as
(select city,count(*) as cont
from car_detail
group by city
order by cont desc)
9.几几年款的二手车平均价格走势,取最近10年的数据用折线图展示
create table if not exists ques9 as
(select t1.car_first_year as car_year,round(avg(t1.car_price_total),2) as price
from
(select year(car_year) as car_first_year,car_price_total
from car_detail) as t1
group by t1.car_first_year
order by car_year desc)
10.统计每座城市二手车数量,并通过地图展示
create table if not exists ques10 as
(select city,count(*) as car_number
from car_detail
group by city
order by car_number desc)
利用生成的表在FineBI中绘图
链接数据库

传入数据库中的表



新建分析进行绘图

绘图完成





相关文章:
【利用二手车数据进行可视化分析】
利用二手车数据进行可视化分析 查看原始数据去除重复数据需求分析1.统计全国总共有多少量二手车,用KPI图进行展示2.统计安徽总共有多少量二手车,用KPI图进行展示3.统计合肥总共有多少量二手车,用KPI图进行展示4.取最贵的10辆二手车信息&#…...
快速测试 3节点的redis sentinel集群宕机2个节点以后是否仍能正常使用
有同事问我,三个redis sentinel节点,宕机两个节点以后,是否还能够正常的通过redis sentinel正常访问redis的数据。我想了想,理论上是可以的,但是我没试过,今天有时间就测试了一下。搭建环境和测试代码的过程…...
echarts词云图echarts-wordcloud使用方法
1、echarts5.0以下的版本使用 echarts-wordcloud 1.0 的词云 1. 安装 wordCloud 1.0 依赖包npm install echarts-wordcloud12. man.js 注入import echarts-wordcloud 2、echarts5.0及以上的下载 echarts-wordcloud 2.0 版本 注意:npm install echarts-wordcloud …...
二叉树的OJ练习(二)
通过前序遍历数组构建二叉树 题目:通过前序遍历的数组(ABD##E#H##CF##G##)构建二叉树 TreeNode* TreeCreat(char* a,int* pi) {if(a[*pi] #){(*pi);return NULL; }TreeNode* root (TreeNode*)malloc(sizeof(TreeNode));if(root NULL){p…...
uni-app 微信小程序之自定义navigationBar顶部导航栏
文章目录 1. 实现效果2. App.vue3. pages.json 配置自定义4. 顶部导航栏 使用 微信小程序自定义 navigationBar 顶部导航栏,兼容适配所有机型 1. 实现效果 2. App.vue 在App.vue 中,设置获取的 StatusBar,CustomBar 高度(实现适配…...
前端入门:HTML初级指南,网页的简单实现!
代码部分: <!DOCTYPE html> <!-- 上方为DOCTYPE声明,指定文档类型为HTML --> <html lang"en"> <!-- html标签为整个页面的根元素 --> <head> <!-- title标签用于定义文档标题 --> <title>初始HT…...
低多边形3D建模石头材质纹理贴图
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格…...
【华为OD题库-081】最长的元音子串长度-Java
题目 题目描述: 定义当一个字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)组成, 称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成…...
第9节:Vue3 指令
如何在UniApp中使用Vue3的指令: <template> <view> <!-- 使用指令 --> <text v-show"isVisible" click"toggleVisibility">点击隐藏/显示</text> <button v-on:click"incrementCount">点击…...
B028-JDBC基础
目录 什么是JDBCJDBC引入持久化JDBC规范 使用JDBC完成CRUDJDBC创建表JDBC CRUD和优化 DAO层的实现 什么是JDBC JDBC引入 Java代码操作数据库的唯一技术:-- JDBC ( java database connection ) 持久化 持久化(persistence):把数据保存到可掉电式存储设…...
ngixn 准备
确认yum可用,确认防火墙,确认SELinux 一项安装 yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel参数: gcc:编译依赖gcc环境 pcre:PCRE(Perl Compatible Regular Expressions)是一…...
生活小记录
上个月项目总算上线了,节奏也慢慢调整正常。发现自己好久没有记录生活点滴了,正好写写。其实,最近这段日子发生的事情还是挺多的。 流感 媳妇11.24得流感,这件事情特别好笑,大晚上她和我妹妹想喝酒试试,结…...
Diary22-全网最全的CSS3.0讲解
CSS学习 1.认识CSS 1.1什么是CSS CSS:Cascading Style Sheet——层叠级联样式表 CSS:表现(美化网页) 字体;颜色;边距;高度;宽度;背景图片;网页定位&…...
LAMP和分离式LNMP部署
目录 一.什么是LAMP? 二.安装LAMP 先安装apache,httpd网页服务: 接着安装mysql: 安装php: 创建论坛: 三.安装分布式LNMP: 先安装nginx: 到另一台主机安装php: …...
基于Java房屋租赁管理系统
基于Java房屋租赁管理系统 功能需求 1、房源信息管理:系统需要能够记录和管理所有房源的详细信息,包括房屋地址、房屋面积、租金、付款方式、房屋类型等。管理员应该可以添加、编辑和删除房源信息。 2、租户信息管理:系统需要能够记录和管…...
windows安装protoc、protoc-gen-go、protoc-gen-go-grpc
文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1,下载:https://github.com/google/protobuf/releases 下载对应的protoc,注意选择windows 2,下好之后解压就行,然后把bin目录加入到环境…...
macOS 获取文件夹大小
macOS 获取文件夹大小 获取文件夹大小的扩展如下: extension URL {var fileSize: Int? { // in bytesdo {let val try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAll…...
Ultimate VFX
Ultimate VFX 构建套件:...
一个通用游戏后台的设计模式实践总结
搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。 逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现…...
Kubernetes - 为什么 K8S 在容器里不能调用自己?
问题描述 最近遇到一个神奇的现象,在 K8S 的 POD 容器中,比如 pod name:mini-appnamespace:devport:5050 那么,是无法在 mini-app 容器里执行以下命令,如果执行,会一直卡在这条命…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
