头歌实训-机器学习(Pandas数据清洗与预处理实战)

发布时间:2026/11/1 17:29:14

头歌实训-机器学习(Pandas数据清洗与预处理实战) 1. Pandas数据清洗的核心价值数据清洗是机器学习项目中最耗时但至关重要的环节。我经手过的真实项目中约70%的时间都花在数据预处理上。Pandas之所以成为数据科学家的首选工具关键在于它用简洁的语法解决了以下痛点脏数据识别一份电商用户行为数据中常出现年龄为999的魔法值、下单时间为2099年的未来数据缺失值处理传感器采集的IoT数据可能因网络波动产生间断性缺失类型转换从CSV读取的2023-01-01会被自动识别为字符串而非日期类型举个真实案例某金融风控项目中原始数据包含37%的缺失值和5%的异常值。直接训练模型AUC只有0.51相当于随机猜测经过Pandas清洗后提升到0.83。2. 数据质量评估实战2.1 快速诊断数据健康度加载数据后首先要做全面体检import pandas as pd # 加载泰坦尼克号数据集 df pd.read_csv(titanic.csv) # 基础诊断三件套 print(f数据维度{df.shape}) print(\n数据类型概览) print(df.dtypes) print(\n缺失值统计) print(df.isnull().sum())输出结果会显示年龄(Age)列有177个缺失值船舱(Cabin)列缺失高达687条登船港口(Embarked)缺失2条2.2 异常值检测方法不同数据类型需要不同的检测策略数据类型检测方法示例阈值数值型IQR法则 Q3 1.5IQR类别型频次统计出现次数 总量1%时间型范围检查不在业务时间范围内# 数值型异常值检测示例 q1 df[Fare].quantile(0.25) q3 df[Fare].quantile(0.75) iqr q3 - q1 upper_bound q3 1.5*iqr outliers df[df[Fare] upper_bound]3. 缺失值处理全攻略3.1 删除策略的陷阱直接df.dropna()是最危险的操作可能导致时间序列数据出现断点特征矩阵出现大量信息损失破坏数据集的原始分布更稳妥的做法是分步处理计算各列缺失比例对缺失30%的列考虑删除或标记其余列采用合理填充# 分步处理示例 missing_ratio df.isnull().mean() cols_to_drop missing_ratio[missing_ratio 0.3].index df_clean df.drop(columnscols_to_drop) # 对年龄列用中位数填充 df_clean[Age] df_clean[Age].fillna(df_clean[Age].median())3.2 高级填充技巧时间序列df.fillna(methodffill)前向填充分类数据填充新类别UNKNOWN数值特征考虑用KNN或随机森林预测填充4. 异常值处理的艺术4.1 保留异常值的情况这些场景不建议处理异常值金融欺诈检测中的异常交易工业设备监控中的故障信号电商领域的真实高消费用户4.2 处理方案对比方法优点缺点适用场景截断法保持数据量破坏分布数值范围明确的指标分箱法保留趋势信息损失精度年龄/价格等连续变量对数变换保持数据顺序改变量纲右偏分布数据# 分箱处理示例 df[Age_bin] pd.cut(df[Age], bins[0,12,18,60,100], labels[Child,Teen,Adult,Elder])5. 数据转换关键操作5.1 类型转换最佳实践常见坑点及解决方案混入特殊字符的数值列先str.replace()再astype日期列格式混乱指定format参数避免自动推断错误大整数列被误判为float使用pd.Int64Dtype()# 安全类型转换模板 def safe_convert(series, target_type): try: return series.astype(target_type) except ValueError as e: print(f转换失败{e}) return series df[Price] safe_convert(df[Price], float64)5.2 特征工程入门创建有效特征的常用手法时间特征从日期提取星期、是否节假日组合特征身高体重组合为BMI指数统计特征滚动窗口的均值/标准差# 创建时间特征示例 df[OrderDate] pd.to_datetime(df[OrderDate]) df[OrderDayOfWeek] df[OrderDate].dt.dayofweek df[IsWeekend] df[OrderDayOfWeek].isin([5,6]).astype(int)6. 数据验证与保存6.1 清洗后检查清单分布对比df.describe()前后对比关联性验证pd.plotting.scatter_matrix观察特征关系业务规则校验如订单金额0等6.2 高效保存技巧不同存储格式的优劣格式读取速度磁盘占用特殊优势CSV慢大可读性强Parquet快小保留数据类型Feather最快中等内存映射# 推荐保存方式 df.to_parquet(cleaned_data.parquet, enginepyarrow)在实际项目中我习惯保存清洗过程的中间快照方便回溯raw_data.parquet - 原始数据cleaned_basic.parquet - 基础清洗后cleaned_advanced.parquet - 特征工程后记得每次保存时记录处理日志可以用df.attrs存储元数据df.attrs[processing_log] { last_processed: pd.Timestamp.now(), missing_handled: True, outlier_method: IQR }
延伸阅读

更多相关文章

2026/10/31 10:11:17

基于PIC18F86J16与压电陶瓷的智能报警系统设计

1. 压电报警系统设计概述在工业控制、医疗设备和智能家居等领域,可靠的声光报警系统是保障安全运行的关键组件。这次我们要探讨的是基于EPT-14A4005P压电陶瓷换能器和PIC18F86J16微控制器的报警系统设计方案。这个组合特别适合需要中高频段4kHz左右清晰报警音的应用…

2026/10/30 19:52:17

UC-winRoad 车辆信息输出函数

UC-winRoad 车辆信息输出函数 该文章仅作记录:列名数据类型说明Timestampdatetime记录数据的时间戳,表示数据采集的具体时间。IDint车辆的唯一标识符,用于识别和区分不同的车辆。Descriptionstring车辆的描述信息,包括类型、颜色等…

2026/11/1 2:01:37

1.c++入门篇

1.c中的关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticunionwchar_tcatchexplicitnamespacestatic_castunsigneddefaultcharexportnewstructusingfriendclassext…

2026/11/1 2:01:37

《江灯合声》:有可行的分框版,也仍可以选择连续鸣谢

武汉江岸区栎坡合唱团在免费节目册《江灯合声》中,以表格集中鸣谢资助者。各家共同要求改为独立小框,团里仍想保留表格。现有全名与支持事项清楚可见,双方此前未承诺具体排版。我支持保留表格。补充的试排材料让选择更具体:分框能…

2026/11/1 2:01:37

关于“贾子猜想”的数学地位、结构特征与讨论边界

关于“贾子猜想”的数学地位、结构特征与讨论边界摘要 本文对“贾子猜想”进行基于公开表述与现有数学事实的分析。该猜想主张:当正整数 n3m>5(即 n6,9,12,15,…)时,方程x₁ⁿ x₂ⁿ ⋯ xₙⁿ yⁿ不存在正整数解。文章首先…

2026/11/1 2:01:37

启动报Port 8088 was already in use?先查是谁占的

启动报Port 8088 was already in use?先查是谁占的 项目启动报 Port 8088 was already in use,意思很直白:这个端口已经有人占了。 先说原理:端口是"门牌号",一间房只住一个进程 端口就是一台机器上的门牌号…

2026/11/1 2:01:37

担心文档上云?本地运行的办公AI才敢放心用

单位上周开了个会,主题是"AI 提效",散会时领导补了一句:涉及客户资料的文档,不许往云端传。这话一出,会议室里本来跃跃欲试的同事全蔫了——大家平时用的那些在线 AI,文档一上传就不知道存哪儿去…

2026/11/1 1:56:37

华为OD机试真题 新系统 2026-10-28 JavaGoC【社交网络消息转发】

目录 题目 思路 Code 题目 题目内容: 在一个社交网络中,有 N 个用户(编号 0 到 N−1);每个用户都有一个「转发名单」(整数),该数二进制格式中的第 i 位为 1 表示此用户会把消息转发给第 i 个用户。 给定一个整数数组 forwardLists 和一个整数 initialSenders,请…

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑