新闻详情

新闻详情

首页 / 资讯中心 / 详情

汽车数据集清洗与分析实战:从Pandas处理到品牌洞察

发布时间:2026/9/12 23:04:42来源:尧图网络
汽车数据集清洗与分析实战:从Pandas处理到品牌洞察
1. 项目概述与数据背景汽车数据集分析是数据科学领域极具实用价值的实战项目。这次我们要处理的是一个包含多种品牌汽车信息的结构化数据集字段可能包括品牌、型号、年份、价格、里程数、发动机类型等常见属性。这类数据通常来源于二手车交易平台、汽车评测网站或企业内部销售系统。在实际业务场景中这类分析可以帮助经销商了解市场供需关系辅助消费者做出购买决策或者为制造商提供产品改进依据。但原始数据往往存在各种质量问题缺失值、异常价格、重复记录、品牌名称不一致比如BMW和宝马混用等。这就是为什么我们需要系统化的数据清洗流程。2. 数据清洗全流程解析2.1 数据质量诊断首先我们需要对数据集进行全面体检。使用Python的Pandas库可以快速生成数据质量报告import pandas as pd # 加载数据集 df pd.read_csv(auto_data.csv) # 基础信息概览 print(df.info()) # 统计缺失值 missing_values df.isnull().sum() print(missing_values[missing_values 0]) # 数值型字段描述统计 print(df.describe())关键诊断点包括各字段缺失值比例超过30%的字段可能需要特殊处理数值字段的分布情况通过describe()查看最小值、最大值、四分位数文本字段的唯一值数量品牌名称是否标准化2.2 缺失值处理实战汽车数据集中常见的缺失情况包括价格字段缺失约5-10%的记录里程数为空特别是较新的车型某些配置信息未填写如天窗、导航等处理方法需要根据字段特性决定# 价格使用同品牌同年份车型的中位数填充 df[price] df.groupby([brand,year])[price].transform( lambda x: x.fillna(x.median())) # 里程数缺失且年份较新的记录填充为0 df.loc[(df[mileage].isna()) (df[year] 2020), mileage] 0 # 配置类字段缺失视为无该配置 config_cols [sunroof,navigation,leather_seats] df[config_cols] df[config_cols].fillna(False)重要提示对于关键字段如价格填充后应添加标记列如price_imputed记录哪些值是估算的避免后续分析产生偏差。2.3 异常值检测与处理汽车数据中典型的异常值包括价格异常高/低可能是单位错误如美元/人民币混淆里程数与年份不匹配3年车龄但里程20万公里发动机排量超出合理范围使用分位数和业务规则结合的方法检测# 价格异常检测 Q1 df[price].quantile(0.25) Q3 df[price].quantile(0.75) IQR Q3 - Q1 price_outliers df[(df[price] Q1 - 1.5*IQR) | (df[price] Q3 1.5*IQR)] # 里程-年份合理性检查 df[miles_per_year] df[mileage] / (2023 - df[year]) unreasonable df[df[miles_per_year] 30000] # 年均超过3万英里视为异常处理方案建议确认是否为录入错误如多输一个0对确认的异常值可用品牌车型年份分组的中位数替换极端异常且无法修正的记录应考虑删除2.4 文本字段标准化品牌名称的混乱是常见问题大小写不一致Toyota vs TOYOTA简写与全称VW vs Volkswagen多语言混合奔驰 vs Benz建立品牌映射字典进行统一brand_mapping { vw: Volkswagen, benz: Mercedes-Benz, bmw: BMW, toyota: Toyota, # 其他品牌映射... } df[brand] df[brand].str.lower().map(brand_mapping).fillna(df[brand])3. 品牌分布深度分析3.1 基础品牌统计清洗后的数据可以进行有意义的品牌分析了import matplotlib.pyplot as plt # 品牌数量分布 brand_counts df[brand].value_counts() # 可视化前20品牌 brand_counts[:20].plot(kindbarh, figsize(10,6)) plt.title(Top 20 Car Brands by Count) plt.xlabel(Number of Listings) plt.show()3.2 品牌价格对比分析各品牌的价格分布能揭示市场定位# 按品牌分组价格统计 brand_price df.groupby(brand)[price].agg([median,mean,count]) brand_price brand_price[brand_price[count] 30] # 过滤样本量小的品牌 # 价格最高的10个品牌 top10_expensive brand_price.sort_values(median, ascendingFalse)[:10]3.3 品牌-年份-价格三维分析使用热力图展示品牌随年份的价格变化import seaborn as sns # 筛选主流品牌且车龄5-10年的数据 condition (df[brand].isin(top_brands)) \ (df[year].between(2013, 2018)) pivot_data df[condition].pivot_table( indexbrand, columnsyear, valuesprice, aggfuncmedian) plt.figure(figsize(12,8)) sns.heatmap(pivot_data, annotTrue, fmt.0f, cmapYlGnBu) plt.title(Median Price by Brand and Year) plt.show()4. 高级分析技巧4.1 品牌市场占有率趋势计算各品牌在不同年份的市场份额变化# 按年份和品牌计数 year_brand_counts df.groupby([year,brand]).size().unstack() # 计算年度占比 year_brand_pct year_brand_counts.div(year_brand_counts.sum(axis1), axis0) # 可视化前5品牌趋势 top5_brands year_brand_pct.mean().sort_values(ascendingFalse).index[:5] year_brand_pct[top5_brands].plot(figsize(10,6)) plt.title(Market Share Trend of Top 5 Brands) plt.ylabel(Percentage) plt.show()4.2 品牌溢价分析通过回归分析量化品牌对价格的影响import statsmodels.api as sm # 准备虚拟变量 df_with_dummies pd.get_dummies(df, columns[brand], drop_firstTrue) # 选择特征和目标变量 features [col for col in df_with_dummies.columns if col.startswith(brand_)] features [year, mileage] X df_with_dummies[features] y df_with_dummies[price] # 添加常数项 X sm.add_constant(X) # 拟合模型 model sm.OLS(y, X).fit() print(model.summary())5. 实战经验与避坑指南5.1 数据清洗常见陷阱过度清洗问题不要机械地删除所有缺失值要分析缺失模式示例电动车没有发动机排量字段是合理的缺失品牌合并误区不要将不同子品牌随意合并如雷克萨斯不应合并到丰田豪华版与普通版应视为不同车型时间处理陷阱注意数据采集时间与车辆年份的关系2023年采集的数据中2024款车辆可能是预售5.2 分析优化建议价格分析技巧使用对数变换处理价格的正偏态分布按地区分层分析不同城市品牌偏好不同可视化最佳实践品牌分布图按数量降序排列箱线图比柱状图更适合展示价格分布性能优化对大型数据集使用Dask替代Pandas分类字段转换为category类型节省内存# 内存优化示例 df[brand] df[brand].astype(category) df[model] df[model].astype(category)5.3 项目扩展方向增加车型级别分析SUV、轿车等结合地理数据研究区域分布构建价格预测模型分析配置组合对价格的影响清洗后的数据集和完整分析代码建议保存为以下结构/project /data raw_data.csv cleaned_data.csv /notebooks 1_data_cleaning.ipynb 2_brand_analysis.ipynb /output brand_distribution.png price_heatmap.png这个项目展示了如何从原始汽车数据中提取有价值的品牌洞察。在实际操作中我发现品牌名称的标准化往往需要多次迭代建议建立一个可维护的映射表。另外不同地区的数据可能需要不同的清洗规则比如美国的里程单位是英里而中国是公里这些细节对分析结果影响很大。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

qwen-code 输出 Token 上限自适应升级(Adaptive Output Token Escalation)机制解析 2026/9/12 23:58:50

qwen-code 输出 Token 上限自适应升级(Adaptive Output Token Escalation)机制解析

qwen-code 输出 Token 上限自适应升级(Adaptive Output Token Escalation)机制解析 【免费下载链接】qwen-code An open-source AI coding agent that lives in your terminal. 项目地址: https://gitcode.com/GitHub_Trending/qw/qwen-code 本文以…

阅读更多 →
kkFileView JDK8/JDK11 版本选型:国产化部署的三问实用指南 2026/9/12 23:58:50

kkFileView JDK8/JDK11 版本选型:国产化部署的三问实用指南

kkFileView JDK8/JDK11 版本选型:国产化部署的三问实用指南 【免费下载链接】kkFileView Universal File Online Preview Project based on Spring-Boot 项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView 给 kkFileView 上线之前,第…

阅读更多 →
Lucide 图标字体(Icon Font)使用指南:通过 CSS 类在项目中渲染全部 Lucide 图标 2026/9/12 23:58:50

Lucide 图标字体(Icon Font)使用指南:通过 CSS 类在项目中渲染全部 Lucide 图标

Lucide 图标字体(Icon Font)使用指南:通过 CSS 类在项目中渲染全部 Lucide 图标 【免费下载链接】lucide Beautiful & consistent icon toolkit made by the community. Open-source project and a fork of Feather Icons. 项目地址: h…

阅读更多 →
深入解读 Angular Material Tree 公共 API:从指令结构到扁平/嵌套数据源实现 2026/9/12 23:58:50

深入解读 Angular Material Tree 公共 API:从指令结构到扁平/嵌套数据源实现

深入解读 Angular Material Tree 公共 API:从指令结构到扁平/嵌套数据源实现 【免费下载链接】components Component infrastructure and Material Design components for Angular 项目地址: https://gitcode.com/GitHub_Trending/co/components mat-tree 是…

阅读更多 →
Refine v5 迁移指南:从 @refinedev/react-router-v6 平滑升级到 React Router v7 2026/9/12 23:58:50

Refine v5 迁移指南:从 @refinedev/react-router-v6 平滑升级到 React Router v7

Refine v5 迁移指南:从 refinedev/react-router-v6 平滑升级到 React Router v7 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/…

阅读更多 →
三方三层主从博弈能源系统优化模型及粒子群算法求解详解 2026/9/12 23:55:50

三方三层主从博弈能源系统优化模型及粒子群算法求解详解

做综合能源系统优化这几年,我最大的感受是:模型越来越“卷”,单靠集中式优化已经很难解释真实世界里的多主体决策行为了。你设计的方案再全局最优,上游供应商不配合、下游用户不响应,实际运行就是一纸空文。所以“三方…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞