脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 用Pandas分析二手车市场行情数据(实战)

用Pandas分析二手车市场行情数据(实战)

2023-05-10 15:25Python学研大本营学研君 Python

本文将展示如何从汽车销售商网站Cars24上抓取所有的搜索结果,并建立一个包含所有找到的列表的数据库。实战Pandas数据分析。

引言

这个项目主要是研究二手车市场上车辆定价的决定因素,本文将展示如何从汽车销售商网站Cars24上抓取所有的搜索结果,并建立一个包含所有找到的列表的数据库。

使用的工具(库)

  • Requests
  • Beautiful Soup
  • Pandas
  • Numpy
  • Matplotlib
  • Seaborn
  • Plotly

导入所需的包并加载数据集:

用Pandas分析二手车市场行情数据(实战)

来自网站的原始数据:

用Pandas分析二手车市场行情数据(实战)

现在,可以看到有一个名为Unnamed:0的列。这一列一定是在抓取数据并将其保存到CSV文件中时添加的。因此,下一步就是删除数据。

数据清洗:

用Pandas分析二手车市场行情数据(实战)

现在将删除Unnamed:0列,然后再次清洗,使数据可视化。

清洗后的Dataframe:

用Pandas分析二手车市场行情数据(实战)

数据概览:

DataFrame.info()将为项目提供有关数据类型和每一列中非空值的数量的信息。

用Pandas分析二手车市场行情数据(实战)

Describe()每一列的数字特征和信息:

用Pandas分析二手车市场行情数据(实战)

  • 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
  1. 2010年至2022年之间的车型年份
  2. 公里数范围从121英里到99944英里不等
  3. 价格从1.62万到24.36万卢比不等

数据可视化

单变量:

最畅销的品牌:

a[‘Brand’].value_counts().plot(kind=’bar’) plt.xlabel(‘Brand’) plt.ylabel(‘Highest selling’) plt.show()

用Pandas分析二手车市场行情数据(实战)

  • 从上面的图表中可以看到Tata是最畅销的汽车。

价格分布:

sns.histplot(a[‘price(in_lk)’],kde=True)

用Pandas分析二手车市场行情数据(实战)

用Pandas分析二手车市场行情数据(实战)

  • 平均价格约为60k,二手车的中位数为50k。
  • 价格分布更像是一个长尾分布和右偏度。这在价格分布上是非常正常的。

燃料

px.bar(a[‘fuel’].value_counts())

用Pandas分析二手车市场行情数据(实战)

  • 人们拥有的大多数汽车是汽油类型的。
  • 人们购买最多的是汽油车,然后是柴油车和压缩天然气车。

双变量分析

不同数量的前车主的车辆列表 :

sns.barplot(x=a[‘owner’],y=a[‘price(in_lk)’],errorbar=None)

用Pandas分析二手车市场行情数据(实战)

  • 从上面的图中可以看出,第一任车主的平均驾驶里程较少。
  • 从第一任车主那里买车更好。

来自不同州的车辆列表

  1. a.groupby([‘Location’])[‘year’].count().sort_values(ascending=False).plot(kind=’bar’, figsize=(10,6)) 
  2. plt.ylabel(‘Number of listings per state’, fnotallow=12) 
  3. plt.xlabel(‘State’, fnotallow=12) 
  4. plt.title(‘Listings per State’, fnotallow=18) 
  5. plt.show() 

用Pandas分析二手车市场行情数据(实战)

用Pandas分析二手车市场行情数据(实战)

  • Hyderabad、Mumbai、Pune是二手车上市数量最多的三个州,这三个州占印度汽车市场的32%。

比较年份和价格:

sns.lineplot(x=a[“year”],y=a[“price(in_lk)”],errorbar=None)

用Pandas分析二手车市场行情数据(实战)

  • 我们可以看到,当年份增加时,价格也在增加。

燃料类型将如何影响转售价格?

sns.boxplot(x=a[“fuel”],y=a[“price(in_lk)”])

用Pandas分析二手车市场行情数据(实战)

  • 从上图中可以注意到,大多数燃料类型的柴油车价格高于其他汽油和压缩天然气。
  • 这就是为什么大多数人想购买汽油车的原因。

多变量分析:

sns.barplot(x=a[“year”],y=a[“price(in_lk)”],errorbar=None,hue=a[“owner”])

用Pandas分析二手车市场行情数据(实战)

  • 在大多数年份里,第一任车主的汽车现价都很高。
  • 当汽车以高价出售时,第一任车主的售价比第二任和第三任车主的售价高。

相关性:

可以使用corr()函数找到各种特征之间的相关性。

sns.heatmap(a.corr(),annot=True)

用Pandas分析二手车市场行情数据(实战)

  • Price和Emi的相关度为0.61。
  • Price一栏与Emi高度相关,因此我们可以使用任何一个变量进行分析。
  1. plt.figure(figsize=(18,7)) 
  2. sns.barplot(x=a[“Location”],y=a[“price(in_lk)”],hue=a[“Location”],errorbar=None) 
  3. plt.xticks(rotation = 90) 
  4. plt.show() 

用Pandas分析二手车市场行情数据(实战)

  • 从上图可以看出,Gurgaon地区的汽车价格高于其他地区。

结论

从可视化中,我们发现了以下结论:

  • Hyderabad,Mumbai,Pune是排名前三的二手车市场。
  • 在大多数年份里,第一任车主的汽车现价都很高。
  • 当汽车出售时,第一任车主的售价比第二任和第三任车主的售价高。
  • 我们可以看到,在Gurgaon地区的汽车价格高于其他地区。
  • 在印度最畅销的汽车制造商是Tata、Maruti。
  • 当二手车定价时,最重要的特征包括里程数、车主和车型年份。从可视化中,我们看到里程数越高,价格越低。
  • 车型价格也与Emi相关,车龄越长,价格越低。

原文地址:https://mp.weixin.qq.com/s/H76StDt5ue8tpYmhME7Bkw

延伸 · 阅读

精彩推荐
  • Pythonpython处理“&#”开头加数字的html字符方法

    python处理“&#”开头加数字的html字符方法

    在本篇文章里小编给大家整理了关于python如何处理“&#”开头加数字的html字符的相关知识点总结,有兴趣的朋友们学习下。...

    脚本之家9522021-07-03
  • Pythonpytorch 中pad函数toch.nn.functional.pad()的用法

    pytorch 中pad函数toch.nn.functional.pad()的用法

    今天小编就为大家分享一篇pytorch 中pad函数toch.nn.functional.pad()的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    geter_CS14952020-05-04
  • Python详解Python装饰器 给你的咖啡加点料

    详解Python装饰器 给你的咖啡加点料

    今天你的咖啡加糖了吗? 让我们通过一个简单的例子来引出装饰器的概念及用法。在引出装饰器之前,我们先来了解一下函数的概念,感兴趣的朋友跟随小...

    公众号老韩随笔7802021-12-13
  • Pythonopencv python 傅里叶变换的使用

    opencv python 傅里叶变换的使用

    这篇文章主要介绍了opencv python 傅里叶变换的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sakurala4152021-03-19
  • Pythonpython多线程互斥锁与死锁问题详解

    python多线程互斥锁与死锁问题详解

    大家好,本篇文章主要讲的是python多线程互斥锁与死锁问题详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下...

    陈小c4332022-09-06
  • Python详解Python是如何处理不同时区的

    详解Python是如何处理不同时区的

    时区是指在地球上不同地方的时间差异,地球分为 24 个时区,每个时区都相对于格林威治标准时间或协调世界时(UTC)有所偏移。本文主要和大家来聊聊...

    9712023-02-26
  • PythonPython栈类实例分析

    Python栈类实例分析

    这篇文章主要介绍了Python栈类,实例分析了Python实现栈的入栈、出栈、移除、判定为空的相关技巧,需要的朋友可以参考下...

    小卒过河4992020-07-15
  • Python详解Python匿名函数(lambda函数)

    详解Python匿名函数(lambda函数)

    这篇文章主要介绍了Python匿名函数(lambda函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    luckycyong9392021-06-19