1. 项目概述
"天池二手车价格预测赛"是阿里云旗下天池平台举办的经典数据科学竞赛项目。作为一名参加过三届天池竞赛的老兵,我发现这个赛题特别适合用来练习数据清洗和探索性数据分析(EDA)的基本功。不同于其他结构化数据预测任务,二手车价格数据具有几个鲜明特点:字段类型混杂(数值、类别、文本都有)、缺失值普遍、异常值频现,还有大量需要人工判断的特征相关性。
我在实际参赛过程中总结出一套高效的EDA工作流,能够用Python在2小时内完成从原始数据到可建模状态的转换。这个工作流后来被我复用到多个工业级数据预测项目中,效果稳定可靠。下面就以比赛数据集为例,手把手演示如何系统化地进行数据清洗和EDA。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据清洗实战
2.1 原始数据质量诊断
拿到比赛提供的used_car_train_20200331.csv文件后,我习惯先用"三看"法快速评估数据质量:
python复制import pandas as pd
df = pd.read_csv('used_car_train_20200331.csv')
# 一看数据结构
print(df.shape) # (150000, 31)
print(df.dtypes)
# 二看缺失情况
missing_ratio = df.isnull().sum()/len(df)
print(missing_ratio[missing_ratio>0].sort_values(ascending=False))
# 三看数值分布
print(df.describe())
通过这个快速检查,我发现几个典型问题:
- 车身颜色(colour)缺失率达30%
- 发动机功率(power)存在0值和700+的异常值
- 注册日期(regDate)与创建日期(creatDate)存在时间逻辑矛盾
- 部分数值特征存在量纲差异(如power的max=65535, min=0)
2.2 缺失值处理方案
对于二手车数据,我推荐采用分类型处理的策略:
-
高缺失率特征(>15%):
直接删除colour字段,因为30%的缺失率已经影响统计显著性。但要注意:在业务场景中需要先确认该字段是否关键特征。 -
中等缺失率特征(5%-15%):
如no
