資料視覺化分析
阿新 • • 發佈:2021-06-19
一,資料描述
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的折扣力度最小。