數據分析實戰,用Pandas分析二手車市場行情
作者:學研君
本文將展示如何從汽車銷售商網站Cars24上抓取所有的搜索結果,并建立一個包含所有找到的列表的數據庫。
引言
這個項目主要是研究二手車市場上車輛定價的決定因素,本文將展示如何從汽車銷售商網站Cars24上抓取所有的搜索結果,并建立一個包含所有找到的列表的數據庫。
使用的工具(庫)
- Requests
- Beautiful Soup
- Pandas
- Numpy
- Matplotlib
- Seaborn
- Plotly
導入所需的包并加載數據集:
來自網站的原始數據:
現在,可以看到有一個名為Unnamed:0的列。這一列一定是在抓取數據并將其保存到CSV文件中時添加的。因此,下一步就是刪除數據。
數據清洗:
現在將刪除Unnamed:0列,然后再次清洗,使數據可視化。
清洗后的Dataframe:
數據概覽:
DataFrame.info()將為項目提供有關數據類型和每一列中非空值的數量的信息。
Describe()每一列的數字特征和信息:
- Data Frame.describe()可以給出數字數據的描述。這可以幫助我們獲得每個數字列的最小值、最大值、平均值、標準偏差等數值。
最后我們得到了560行和9列,并且在Year、Brand、Car name、kilometer、owner、fuel、Emi、location和price等列中沒有空值。
探索數據
車輛信息匯總
列類型:
- 數字 — kilometer、price、Emi
- 分類 — Year、Brand、Car name、fuel、location、owner
- 2010年至2022年之間的車型年份
- 公里數范圍從121英里到99944英里不等
- 價格從1.62萬到24.36萬盧比不等
數據可視化
單變量:
最暢銷的品牌:
a[‘Brand’].value_counts().plot(kind=’bar’)
plt.xlabel(‘Brand’)
plt.ylabel(‘Highest selling’)
plt.show()
- 從上面的圖表中可以看到Tata是最暢銷的汽車。
價格分布:
sns.histplot(a[‘price(in_lk)’],kde=True)
- 平均價格約為60k,二手車的中位數為50k。
- 價格分布更像是一個長尾分布和右偏度。這在價格分布上是非常正常的。
燃料
px.bar(a[‘fuel’].value_counts())
- 人們擁有的大多數汽車是汽油類型的。
- 人們購買最多的是汽油車,然后是柴油車和壓縮天然氣車。
雙變量分析
不同數量的前車主的車輛列表 :
sns.barplot(x=a[‘owner’],y=a[‘price(in_lk)’],errorbar=None)
- 從上面的圖中可以看出,第一任車主的平均駕駛里程較少。
- 從第一任車主那里買車更好。
來自不同州的車輛列表
a.groupby([‘Location’])[‘year’].count().sort_values(ascending=False).plot(kind=’bar’, figsize=(10,6))
plt.ylabel(‘Number of listings per state’, fnotallow=12)
plt.xlabel(‘State’, fnotallow=12)
plt.title(‘Listings per State’, fnotallow=18)
plt.show()
- Hyderabad、Mumbai、Pune是二手車上市數量最多的三個州,這三個州占印度汽車市場的32%。
比較年份和價格:
sns.lineplot(x=a[“year”],y=a[“price(in_lk)”],errorbar=None)
- 我們可以看到,當年份增加時,價格也在增加。
燃料類型將如何影響轉售價格?
sns.boxplot(x=a[“fuel”],y=a[“price(in_lk)”])
- 從上圖中可以注意到,大多數燃料類型的柴油車價格高于其他汽油和壓縮天然氣。
- 這就是為什么大多數人想購買汽油車的原因。
多變量分析:
sns.barplot(x=a[“year”],y=a[“price(in_lk)”],errorbar=None,hue=a[“owner”])
- 在大多數年份里,第一任車主的汽車現價都很高。
- 當汽車以高價出售時,第一任車主的售價比第二任和第三任車主的售價高。
相關性:
可以使用corr()函數找到各種特征之間的相關性。
sns.heatmap(a.corr(),annot=True)
- Price和Emi的相關度為0.61。
- Price一欄與Emi高度相關,因此我們可以使用任何一個變量進行分析。
plt.figure(figsize=(18,7))
sns.barplot(x=a[“Location”],y=a[“price(in_lk)”],hue=a[“Location”],errorbar=None)
plt.xticks(rotation = 90)
plt.show()
- 從上圖可以看出,Gurgaon地區的汽車價格高于其他地區。
結論
從可視化中,我們發現了以下結論:
- Hyderabad,Mumbai,Pune是排名前三的二手車市場。
- 在大多數年份里,第一任車主的汽車現價都很高。
- 當汽車出售時,第一任車主的售價比第二任和第三任車主的售價高。
- 我們可以看到,在Gurgaon地區的汽車價格高于其他地區。
- 在印度最暢銷的汽車制造商是Tata、Maruti。
- 當二手車定價時,最重要的特征包括里程數、車主和車型年份。從可視化中,我們看到里程數越高,價格越低。
- 車型價格也與Emi相關,車齡越長,價格越低。
責任編輯:武曉燕
來源:
Python學研大本營