数据分析案例-汽车客户信息数据可视化分析(文末送书)

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.数据集介绍

3.技术工具

4.导入数据

 5.数据预处理

6.数据探索性分析

6.1不同组别的性别分布

6.2不同组别的年龄分布

6.3不同组别的工作经验vs消费得分

6.4不同组别的客户分布

6.5不同组别的家庭规模

6.6客户年龄分布

6.7工作经验分布

6.8家庭规模分布

6.9相关系数热力图

7.分析总结

8.实验源代码

9.文末福利


1.项目背景

        在当代社会,汽车作为人们生活中不可或缺的交通工具,其销售和使用数据一直受到广泛关注。汽车制造商、销售商以及相关的市场调研机构需要对汽车客户信息进行深入分析,以了解消费者的需求、喜好和行为习惯,从而优化产品设计、提高市场营销效率,并增加销售额。

        随着信息技术的不断发展,数据可视化成为一种强大的工具,可以将大量的汽车客户信息呈现为直观、易懂的图表和图像。通过数据可视化分析,汽车制造商和销售商可以更好地洞察客户群体的特征和行为,例如他们的地理分布、购车偏好、购买决策因素、购车周期等。同时,数据可视化也有助于发现市场趋势和潜在机会,指导企业制定更精准的营销策略,提高竞争力。

        此外,随着大数据技术的普及和应用,汽车行业积累了大量的客户数据,包括车辆销售记录、售后服务反馈、在线咨询聊天记录等。利用这些数据进行可视化分析,可以挖掘更深层次的信息,帮助企业更好地了解客户的需求和意愿。

        综上所述,进行汽车客户信息数据可视化分析对于汽车行业的企业来说具有重要意义,它可以帮助企业做出更明智的决策,提升客户满意度,提高市场份额,进而推动整个汽车产业的发展。

2.数据集介绍

本数据集来源于kaggle,原始数据集共有8068条,11个特征变量,各变量含义解释如下:

ID:客户ID
Gender:客户性别
Ever_Married:客户婚姻状况
Age:客户年龄
Graduated:客户是毕业生吗?
Profession:客户的职业
Work_Experience:多年工作经验
Spending_Score:客户的消费评分
Family_Size:客户家庭成员人数(含客户)
Var_1:客户的匿名类别
Segmentation:(目标)客户的客户群

3.技术工具

Python版本:3.9

代码编辑器:jupyter notebook

4.导入数据

 查看数据大小

查看数据基本信息

数值型变量描述性统计

非数值型变量描述性统计

 5.数据预处理

统计缺失值情况

 删除缺失值

检测数据集是否存在重复值,结果为False说明没有 

6.数据探索性分析

6.1不同组别的性别分布

6.2不同组别的年龄分布

6.3不同组别的工作经验vs消费得分

6.4不同组别的客户分布

6.5不同组别的家庭规模

6.6客户年龄分布

6.7工作经验分布

6.8家庭规模分布

6.9相关系数热力图

7.分析总结

经过前面的数据可视化分析,我们可以总结出以下规律:

细分D:通常是35岁以下的未婚人士,消费得分低,主要在医疗保健行业工作。

细分A:年龄在25岁到53岁之间,结婚率约为55%,消费得分低。职业包括市场营销、娱乐、工程等。主要的家庭规模是1人和2人。

细分B:约75%的结婚率,通常在33岁到55岁之间。混合支出得分分布(低:平均:高的比例为4:3:2)。通常在市场营销部门工作。这部分的家庭通常由2个成员组成。

细分C: 80%左右的结婚率,年龄在32 - 70岁之间。各个细分市场的消费得分各不相同(低:平均:高的比例为3:4:2)。主要从事市场营销工作。这部分的家庭规模通常在2到4人之间。

8.实验源代码

df_train = pd.read_csv('Train.csv')
df_train.head()
df_train.shape
df_train.info()
df_train.describe()
df_train.describe(include='O')
df_train.isnull().sum() # 统计缺失值
df_train.dropna(inplace=True) # 删除缺失值
df_train.shape
any(df_train.duplicated()) # 检测数据集是否存在重复值
# 不同组别的性别分布
sns.countplot(x='Segmentation', hue='Gender', data=df_train)
plt.title("Segmentation based on Gender")
plt.show()
# 不同组别的年龄分布
sns.boxplot(x='Segmentation', y='Age', data=df_train)
plt.title("Age Distribution based on Segmentation")
plt.show()
# 不同组别的工作经验vs消费得分
sns.boxplot(x='Work_Experience', y='Spending_Score', hue='Segmentation', data=df_train)
plt.title("Work Experience vs Spending Score based on Segmentation")
plt.show()
sns.violinplot(x='Segmentation', y='ID', data=df_train)
plt.title("Profession Distribution based on Segmentation")
plt.show()
# 不同组别的家庭规模
plt.figure(figsize=(8,8))
df_train['Family_Size'].value_counts().plot.pie(autopct='%1.1f%%')
plt.title("Family Size Distribution based on Segmentation")
plt.show()
# 客户年龄分布
plt.figure(figsize=(10,5))
sns.histplot(df_train['Age'], kde=True)
plt.title("Distribution of 'Age'")
plt.xlabel("Age")
plt.ylabel("Frequency")
plt.show()
# 工作经验分布
plt.figure(figsize=(10,5))
sns.histplot(df_train['Work_Experience'], kde=True)
plt.title("Distribution of 'Work_Experience'")
plt.xlabel("Work_Experience")
plt.ylabel("Frequency")
plt.show()
# 家庭规模分布
plt.figure(figsize=(10,5))
sns.histplot(df_train['Family_Size'], kde=True)
plt.title("Distribution of 'Family_Size'")
plt.xlabel("Family_Size")
plt.ylabel("Frequency")
plt.show()
# 删除目标变量
df_train_kmeans = df_train.drop(['Segmentation', 'ID'], axis=1)
df_train_kmeans
# 将分类列转换为标签编码列
from sklearn.preprocessing import  LabelEncoder
encoder = LabelEncoder()
df_train_kmeans['Gender'] = encoder.fit_transform(df_train_kmeans['Gender'])
df_train_kmeans['Ever_Married'] = encoder.fit_transform(df_train_kmeans['Ever_Married'])
df_train_kmeans['Graduated'] = encoder.fit_transform(df_train_kmeans['Graduated'])
df_train_kmeans['Profession'] = encoder.fit_transform(df_train_kmeans['Profession'])
df_train_kmeans['Spending_Score'] = encoder.fit_transform(df_train_kmeans['Spending_Score'])
df_train_kmeans['Var_1'] = encoder.fit_transform(df_train_kmeans['Var_1'])
df_train_kmeans.head()
# 相关系数矩阵
corr = df_train_kmeans.corr()
# 绘制热力图
plt.figure(figsize=(10,10))
sns.heatmap(corr, annot=True)
plt.show()

9.文末福利

《Python商业数据挖掘》免费包邮送出3本!

内容简介:

       本书前5版好评如潮,作为第6版,本书首次使用了Python语言。本书除了介绍用于统计和机器学习等领域的预测、分类、可视化、降维、推荐系统、聚类、文本挖掘、网络分析等方法之外,内容还包括:

● 新加入的合著者Peter Gedeck拥有使用Python讲解商业分析课程的丰富经验以及将机器学习应用于新药发现过程的专业技能。在本书中,他十分乐于将这些经验和技能与读者分享。

● 讨论数据挖掘中的伦理问题。

● 根据教师和学生的反馈意见对内容做了更新。

● 通过多个案例展示数据挖掘技术的实际应用。

● 每章后面的习题有助于读者评估和加深对该章内容的理解。

● 在线支持网站提供了数据集、教学资料、习题答案、PPT教案和案例解决方案。

 

  • 抽奖方式:评论区随机抽取3位小伙伴免费送出!
  • 参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
  • 活动截止时间:2023-08-30 20:00:00
  • 购买链接:http://product.dangdang.com/29322346.html

 名单公布时间:2023-08-30 21:00:00   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/89442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32应用教程(1)— VL53L3CX距离传感器

文章目录 前言 1 产品概述 1.1 技术规格 1.2 系统框图 1.3 设备引脚分布 2 工作流程 2.1 系统功能描述 2.2 状态机描述 2.3 测距模式说明 3 控制接口 3.1 设备地址 3.2 IC写1个字节数据 3.3 IC读1个字节数据 3.4 IC写多个字节数据 3.5 IC读多个字节数据 3.6 IC…

cuda面试准备(一),架构调试

1 cuda架构 硬件方面 SP (streaming Process) ,SM (streaming multiprocessor) 是硬件(GPUhardware) 概念。而thread,block,grid,warp是软件上的(CUDA) 概念 SP:最基本的处理单元,streaming processor,也称为CUDA core,最后具体的指令和任务都是在SP上处理的。GPU进行并行…

镭速传输助力广电行业大数据高效分发,提升智慧融媒水平

随着互联网技术如大数据、人工智能、云计算等和移动通信技术如5G等的快速进步和实际应用,媒体行业发展正式进入智慧时代,智慧融媒成为媒体融合发展的新阶段,全面应用在超高清、云服务、融媒演播、VR等新兴技术为代表的各个方面。 以上技术的…

Kotlin协程runBlocking并发launch,Semaphore同步1个launch任务运行

Kotlin协程runBlocking并发launch&#xff0c;Semaphore同步1个launch任务运行 <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.7.3</version><type>pom&…

C++之fileno用法实例(一百八十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

为什么使用消息队列?消息队列能够做什么?消息队列有哪些?怎么选择?

❤ 作者主页&#xff1a;李奕赫揍小邰的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是李奕赫&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习!!!&#x1f389;&#x1f389; 文章目录 为什么使用消…

如何在 Ubuntu 中安装最新的 Python 版本

动动发财的小手&#xff0c;点个赞吧&#xff01; Python 是增长最快的主要通用编程语言。其原因有很多&#xff0c;例如其可读性和灵活性、易于学习和使用、可靠性和效率。 目前使用的 Python 有两个主要版本 – 2 和 3&#xff08;Python 的现在和未来&#xff09;&#xff1…

网约车平台如何开发?需要多少钱?

随着共享经济的兴起&#xff0c;网约车行业迅速发展&#xff0c;并成为人们生活中不可或缺的一部分。为了满足市场需求和提供更好的服务&#xff0c;开发一款高质量的网约车源码平台至关重要。本文将深入探讨网约车源码平台的开发方案&#xff0c;从技术架构、安全性和用户体验…

优酷视频码率、爱奇艺视频码率、B站视频码率、抖音视频码率对比

优酷视频码率、爱奇艺视频码率与YouTube视频码率对比 优酷视频码率&#xff1a; 优酷的视频码率可以根据视频质量、分辨率和内容类型而变化。一般而言&#xff0c;优酷提供了不同的码率选项&#xff0c;包括较低的标清&#xff08;SD&#xff09;码率和较高的高清&#xff08;…

回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;…

【每日易题】数组下标的逆天用法——你见过把数组存储的值当作数组下标来解题的吗?

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;在最近是刷题中&#xff0c;遇到了一种非常新奇的数组下标的用法&#xff0c;今天想来给大家分享一下这种神奇的思路和方法&#xff0c;希望能在你遇到类似问题时能通…

【数学建模】清风数模中正课4 拟合算法

拟合算法 在插值算法中&#xff0c;我们得到的曲线一定是要经过所有的函数点的&#xff1b;而用拟合所得到的曲线则不一样&#xff0c;拟合问题中&#xff0c;不需要得到的曲线一定经过给定的点。 拟合的目的是寻求一个函数曲线&#xff0c;使得该曲线在某种准则下与所有的数…

深度学习模型优化:提高训练效率和精度的技巧

文章目录 1. 数据预处理2. 批量归一化&#xff08;Batch Normalization&#xff09;3. 学习率调整4. 提前停止&#xff08;Early Stopping&#xff09;5. 模型压缩与剪枝6. 模型并行与分布式训练7. 自动化超参数调整结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索Java中的静…

JavaWeb-特殊文件(propertis与XML)

目录 Properties文件 一.properties介绍 二.properties使用 三.解决中文乱码问题 XML文件 一.XML介绍 二.XML文件的语法规则 三.XML的使用 Properties文件 一.properties介绍 1.什么是properties文件 Properties文件是一种常用的配置文件格式&#xff0c;用于存储键值…

win11 docker-desktop安装记录

win11安装Docker踩坑实录 马上开始正式工作了&#xff0c;需要用到docker&#xff0c;以前在win10上安装过&#xff0c;新电脑是win11&#xff0c;心想肯定会遇到坑&#xff0c;就浅浅记录一下 首先看一下安装要求 需要wsl2 那么就先进行 wsl的更新 wsl --update注意这里网络…

c++ qt--信号与槽(一) (第三部分)

c qt–信号与槽(一) &#xff08;第三部分&#xff09; 一.用qt自带的方法添加信号槽 1.第一种 1.如何添加 2.在何处进行绑定 2.第二种 1.如何添加 2.在何处进行绑定 而且会在mainwindow.h中添加槽函数的声明&#xff0c;在mainwindow.cpp中添加槽函数的定义 在mainwindow…

php_webshell免杀--从0改造你的AntSword

0x00 前言&#xff1a; 为什么会有改造蚁剑的想法&#xff0c;之前看到有做冰蝎的流量加密&#xff0c;来看到绕过waf&#xff0c;改造一些弱特征&#xff0c;通过流量转换&#xff0c;跳过密钥交互。 但是&#xff0c;冰蝎需要反编译去改造源码&#xff0c;再进行修复bug&am…

16.5.6 【Linux】一个网络服务案例及登录文件协助

setroubleshoot --> 错误讯息写入 /var/log/messages 几乎所有 SELinux 相关的程序都会以 se 为开头&#xff0c;这个服务也是以 se 为开头。troubleshoot是错误克服&#xff0c;因此setroubleshoot要启动。这个服务会将关于 SELinux 的错误讯息与克服方法记录到 /var/log/…

【AI】即使AI 时代,程序员也无需焦虑

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

TMP: 利用std::tuple完成运行期的if...else替换

code client code 参考链接&#xff1a; std::tuple std::tuple_size std::tuple_element