二手车定价探索性数据分析(EDA)详解:从数据清洗到价格分布可视化

 

一、项目背景与前期回顾

在上一期文章中,我们重点讲解了二手车数据清洗的全流程,包括缺失值填充、分类变量处理、特征单位转换等关键步骤(点击回顾数据清洗细节)。通过清洗,我们得到了一个规范化的数据集。本期我们将基于清洗后的数据,深入分析不同车辆属性对价格的影响。核心目标是通过热力图(Heatmap)直观展示驱动方式(drive-wheels)车身类型(body-style)组合下的平均价格分布,帮助读者快速识别高价车型特征。

二、热力图生成代码完整流程

1. 数据分组与聚合

代码块

  1.  df1 中筛选三列:drive-wheels(驱动方式)、body-style(车身类型)、price价格)。

  2. 使用groupby先按drive-wheels分组再二次通过body-style细分

  3. groupby会对细分的组进行聚合操作,用.mean()就能计算出average-price

  4. as_index=False 确保groupby操作后不将drive-wheelsbody-style作为MultiIndex

drive-wheelsbody-styleprice
4wdconvertible32000.0
fwdsedan15000.0
.........

2. 生成透视表与数据填充

生成Heatmap要求Data Stracture为二维矩阵,而groupby输出是一个Long Fromat因此我们需要将grouped_test1用.pivot输出为Wide Format。这是关系链:

CSV(数据格式) → 加载为 DataFrame(二维数据结构) → 转换为透视表(二维矩阵) → 输入热力图
  • pivot(index='drive-wheels', columns='body-style')

    • 将长格式数据转换为宽格式矩阵,行索引为驱动方式,列索引为车身类型。

    • 默认以 price 作为填充值(因 grouped_test1 仅含三列)。

  • fillna(0):缺失组合(如无四驱轿车数据)价格设为0。

  • astype(float):确保所有值为浮点数。

透视表结构

drive-wheelsconvertiblesedanhatchback...
4wd32000.00.018000.0...
fwd0.015000.012000.0...

3. 热力图绘制代码

代码块

columns中含有MultiIndex 要将Heatmap的x轴标签设置为body-style就需要用.levels[1]选中MultiIndex的第二层索引即body-style

  1. 标签对齐

    • set_xticks(np.arange(...) + 0.5):将刻度对准单元格中心,避免标签偏移。

    • rotation=45:旋转X轴标签45度,解决长文本重叠问题。

  2. 颜色条

    • fig.colorbar 添加右侧颜色条,标注价格映射关系。


4. 热力图输出效果


热力图分析

  • 高价区域(红色)

    • 四驱(4wd)敞篷车(convertible)价格最高,反映高端车型市场定位。

    • 后驱(rwd)硬顶车(hardtop)次之,常见于跑车或豪华车型。

  • 低价区域(蓝色)

    • 前驱(fwd)掀背车(hatchback)价格最低,多为经济型家用车。

  • 空白组合(白色或0值)

    • 如四驱轿车(4wd + sedan),数据中无此类样本,需进一步验证是否为数据缺失。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值