数据探索性分析案例实现

一,数据描述

1,数据解释

  • 汽车款式:车辆的品牌,型号
  • 汽车售价:车辆实际的成交价
  • 汽车原价: 车辆官方指导价
  • 行驶里程:车辆目前行驶的里程数
  • 保险到期:车辆所购买的保险到期时间
  • 上牌时间:车辆上牌的时间
  • 车身级别:车辆所处的车辆类型,大致分为轿车,SUV,细分有多种
  • 颜色:汽车发动机使用的燃油标号,分为95号,92号,98号
  • 汽车所在地:汽车上牌时登记的地区
  • 差价:汽车原价-汽车售价
  • 售价/原价:汽车售价/汽车原价

2,导入数据

import pandas as pd
data = pd.read_csv(D:/二手车之家的所有汽车原始数据.csv)

二,数据清洗

data = data.drop(Unnamed: 0, axis=1)
data = data[data[汽车售价/万] < 100]   #  清洗少数售价 > 100
data = data[data[汽车原价/万] < 200]   #  清洗少数原价 > 200 
data = data[(data[售/原] * 0.01).index()]
data = data.drop(index=(data.loc[(data[售/原] / 100)].index))  #  清洗异常数据‘[]‘
data = data.drop(index=(data.loc[(data[颜色]==[])].index))  #  清洗异常数据‘[]‘
data = data.drop(index=(data.loc[(data[上牌时间] ==未上牌)].index))  #  清洗异常数据‘[]‘

 

数据探索性分析案例实现

 

 三,数据分析及可视化

3.1  汽车售价簇状分布图

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽车售价/万", fontsize=25, color = red)  # 子图标题
ax.hist(data[汽车售价/万],bins = 20)
plt.ylabel("汽车数量", fontsize=20, color = blue) #设置X轴Y轴名称 ,字体大小,颜色
plt.xlabel("汽车售价", fontsize=20, color = blue) 
plt.tick_params(labelsize=20)  # 刻度字体大小
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname(Times New Roman) for label in labels]
ax.xaxis.set_major_locator(MultipleLocator(5))  # x轴刻度值之家的差
ax.yaxis.set_major_locator(MultipleLocator(500))  # y轴刻度值之家的差

数据探索性分析案例实现

从上图可以看出:

  汽车销量最高的可以达到6000万,5万到10万的车辆数目占比最大,基本上越便宜的车数量越多。

3.2 汽车原价簇状分布图

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽车原价/万", fontsize=25, color = red)  # 子图标题
ax.hist(data[汽车原价/万],bins = 20)
plt.ylabel("汽车数量", fontsize=20, color = blue) #设置X轴Y轴名称 ,字体大小,颜色
plt.xlabel("汽车原价", fontsize=20, color = blue) 
plt.ylim(0,6500)  #设置Y轴上下限 
plt.tick_params(labelsize=13)  # 刻度字体大小
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname(Times New Roman) for label in labels]
ax.xaxis.set_major_locator(MultipleLocator(5))  # x轴刻度值之家的差
ax.yaxis.set_major_locator(MultipleLocator(500))  # y轴刻度值之家的差

 

数据探索性分析案例实现 

3.3 汽车所在地–汽车数量簇状分布图

fig , ax = plt.subplots(1,1, figsize=(16, 8))
ax.set_title("汽车所在地", fontsize=25, color = red)  # 子图标题
ax.hist(data[汽车所在地],bins = 22)
plt.ylabel("汽车数量", fontsize=20, color = blue) #设置X轴Y轴名称 ,字体大小,颜色
plt.xlabel("汽车所在地", fontsize=20, color = blue) 
ax.yaxis.set_major_locator(MultipleLocator(200))  # y轴刻度值之家的差

数据探索性分析案例实现

从上图可以看出:

  汽车销量最多的城市是东莞和深圳,汽车销量最少的城市是中山和揭阳。

3.4 车身级别–汽车数量簇状分布图

# 车身级别数量图
fig , ax = plt.subplots(1,1, figsize=(16, 8))
# fig.suptitle("原价与售价对比",fontsize=20,x=0.5,y=0.95)  #  总图标题
ax.set_title("车身级别", fontsize=25, color = red)  # 子图标题
ax.hist(data[车身级别],bins = 24)
plt.ylabel("汽车数量", fontsize=20, color = blue) #设置X轴Y轴名称 ,字体大小,颜色
plt.xlabel("车身级别", fontsize=20, color = blue) 

数据探索性分析案例实现

从上图分析可知:

  最受欢迎的车辆是紧凑型车和中型车,最不受欢迎的是跑车和小型SUV

4,线性回归模型与评估模型相关性

from sklearn.linear_model import LinearRegression
X = data[驾驶行程/万公里].values.reshape(-1,1)
y = data[售/原].values.reshape(-1,1)
reg = LinearRegression()
reg.fit(X, y)
print("The linear model is: Y = {:.5} + {:.5}X".format(reg.intercept_[0], reg.coef_[0][0]))
#线性回归
predictions = reg.predict(X)
plt.figure(figsize=(16, 8))
plt.scatter(data[驾驶行程/万公里], data[售/原], c=black)
plt.plot( data[驾驶行程/万公里], predictions, c=blue, linewidth=2)
plt.xlabel("驾驶里程/万公里", fontsize= 20, c=blue)
plt.ylabel("售/原百分比%", fontsize= 20, c=blue)
plt.show()

数据探索性分析案例实现

从上图分析可知:

  售价与原价的比例越低,行驶理程越高。

5,数据分布箱型图

#售价与车身级别箱型图
plt.figure( figsize=(16, 8))
plt.title(售价与车身级别箱型图, fontsize = 25 ,c = green) # 主图主题名、大小、颜色
plt.ylabel("", fontsize=20, color = blue) #设置X轴Y轴名称(无效) ,字体大小,颜色
plt.xlabel("", fontsize=20, color = blue) 
plt.tick_params(labelsize=16)  # 刻度字体大小
sns.boxplot(y = data[售/原], x = data[车身级别])

数据探索性分析案例实现

从上图分析可知:

  大型车的售价与原价比例较低,小型SUV的售价与原价比例较高。

6,总结

  在中国,人们购买最多的车辆价格在5-10万之间,越发达的城市,它的汽车销量越高。在一众车型中,最欢迎的是紧凑型车和中型车。行驶里程最多的是折扣力度比较大的车辆,大型车的折扣力度最大,小型SUV的折扣力度最小。

 

数据探索性分析案例实现

上一篇:剑指offer04


下一篇:vue前台工程部署至服务器