发布时间:2026/8/21 21:28:13
数据清洗工程实践:基于 pandas 的八类典型问题与处理规范 在数据分析与机器学习项目中数据清洗通常占据一半以上的工作量。本文基于一次真实成绩数据的清洗经历数千条教务系统导出记录归纳八类高频脏数据问题及其标准处理方式并给出可复用的处理规范。〇、两条前置原则原始数据只读。原始文件置于独立目录如raw/并保持只读所有处理结果输出至processed/。任何情况下不直接修改原始文件。处理过程脚本化。禁止使用 Excel 手工修改数据。所有清洗逻辑以脚本实现保证可重复执行、可追溯。手工修改的数据在事后无法还原修改内容。import pandas as pd import numpy as np df pd.read_csv(raw/scores.csv) df_backup df.copy() # 内存中保留原始副本一、清洗前的数据体检开始处理前先用以下命令建立对数据的整体认识df.shape # 行列规模 df.dtypes # 各列类型数值列被读为字符串是常见问题 df.head(10) # 直接观察数据内容 df.isnull().sum() # 各列缺失数量 df.describe(includeall) # 数值列分布与文本列取值个数其中dtypes需重点检查若成绩列类型为object说明列内混入了非数值内容如缺考缓考此时直接计算统计量会报错或产生错误结果。二、八类典型问题与处理方法1. 缺失值先分析成因再决定策略missing_rate df.isnull().mean().sort_values(ascendingFalse) print(missing_rate[missing_rate 0])处理决策建议缺失率超过 60% 的列删除df.drop(columns[...])该列已不具备分析价值数值列少量缺失以中位数填充df[score].fillna(df[score].median())——中位数对极端值鲁棒优于均值类别列缺失填充为独立类别fillna(未知)。缺失本身可能携带信息不宜简单删除避免无差别使用dropna()整行删除会损失大量有效信息仅在其他方法均不适用时采用。2. 重复记录区分完全重复与业务重复df.duplicated().sum() # 完全重复的行 df df.drop_duplicates() # 业务层面的重复同一学生同一学期出现多条记录 df.duplicated(subset[学号, 学期]).sum() df df.drop_duplicates(subset[学号, 学期], keeplast)keep参数的取值取决于业务语义后录入覆盖先录入或相反。无法确认时应向数据提供方求证不应自行假设。3. 类型混杂数值列中混入文本df[score] pd.to_numeric(df[score], errorscoerce) # 无法转换的置为 NaN参数errorscoerce将无法解析的值统一转为 NaN随后纳入缺失值处理流程避免转换异常中断执行。4. 异常值以 IQR 准则识别以业务判断处置Q1 df[score].quantile(0.25) Q3 df[score].quantile(0.75) IQR Q3 - Q1 lower, upper Q1 - 1.5 * IQR, Q3 1.5 * IQR outliers df[(df[score] lower) | (df[score] upper)] print(f识别出 {len(outliers)} 个异常值)识别异常值不等于删除异常值。超出合理区间的取值如百分制下出现 150 分大概率为录入错误可修正或剔除但统计意义上的离群点可能是真实且重要的样本如欺诈检测场景中异常样本正是分析目标。处置前应逐条核实。5. 文本不规范同一实体的多种写法df[专业].value_counts() # 可能输出计算机科学与技术、计算机、计科、CS、计算机科学 ……标准化处理的一般顺序df[专业] df[专业].str.strip() # 去除首尾空格 df[专业] df[专业].str.replace( , ) # 去除全角空格 mapping {计科: 计算机科学与技术, CS: 计算机科学与技术, ...} df[专业] df[专业].replace(mapping)首尾空格是高频隐患计算机与 计算机在分组统计中被视为不同取值。聚合结果出现疑似重复的类别时应首先检查空格问题。6. 日期格式统一df[日期] pd.to_datetime(df[日期], errorscoerce)pd.to_datetime可识别多数常见格式2024-01-01、2024/1/1、2024年1月1日等。转换完成后可便捷地提取时间特征df[日期].dt.year # 年 df[日期].dt.month # 月 df[日期].dt.dayofweek # 星期7. 类别编码区分有序与无序文本特征入模前必须编码编码方式取决于类别是否具有序关系# 有序类别如等级 ABCD映射为数值保留序关系 grade_map {A: 4, B: 3, C: 2, D: 1} df[等级编码] df[等级].map(grade_map) # 无序类别如专业one-hot 编码 df pd.get_dummies(df, columns[专业], prefix专业)不应对无序类别使用序号编码0, 1, 2, …这会向模型引入并不存在的序关系如计算机(2) 大于 机械(1)属于初学阶段的高频错误。8. 结果保存df.to_csv(processed/scores_clean.csv, indexFalse, encodingutf-8-sig)两点说明encodingutf-8-sig带 BOM 的 UTF-8 编码可保证中文 CSV 在 Excel 中正常显示普通 UTF-8 编码的 CSV 用 Excel 打开会出现乱码。中间结果规模较大时建议使用 Parquet 格式to_parquet()体积与读写速度较 CSV 有数量级优势且保留列类型信息。三、应当避免的做法做法问题在 Excel 中手工修改数据不可复现、不可追溯无差别dropna()损失大量有效样本缺失值一律填 00 是有效数值会污染统计量与模型发现异常值直接删除异常值可能正是重要信息清洗后不重新验证每轮清洗后应重新执行数据体检四、处理日志一项低成本高收益的习惯建议每次清洗完成后保留简要记录2024-XX-XX 清洗记录 - 原始 5231 行 → 去重后 5180 行剔除完全重复 51 条 - score 列12 条缺考转为 NaN以中位数 72 填充 - 专业列合并 7 个别名统一去除首尾空格 - 剔除异常值 3 条score 100经与数据提供方确认为录入错误该日志在项目复盘与求职面试中均有直接价值——处理过什么数据远不如遇到什么问题、如何解决、依据是什么具有说服力。五、小结数据清洗没有统一的固定流程但有稳定的方法论先体检、再分类处置、处置后验证、全程留痕。掌握本文的八类问题及其处理规范足以应对本科阶段绝大多数表格数据场景。下一篇讨论计算机视觉项目的技术选型问题传统图像处理方法与深度学习方法各自的适用范围及判断依据。

相关新闻

2026/8/21 21:28:13

基于RFC协议与Qt框架的跨平台C++客户端开发实践

在实际 C Qt 项目中,从零开始构建一个功能完整、架构清晰的客户端应用,是检验开发者工程能力的重要标尺。很多开发者熟悉 Qt 的控件和信号槽,但面对网络协议解析、跨平台适配、模块化架构设计等综合需求时,往往感到无从下手。本文…

2026/8/21 21:28:13

atomic chat量化居然比unsloth 更小更强

atomic chat量化居然比unsloth 更小更强 Atomic Chat 面向智能体的本地 AI 应用与推理引擎。本地运行开源权重大型语言模型 —— 隐私安全,完全在您的设备上离线运行。 repo:GitHub - AtomicBot-ai/Atomic-Chat: Local AI app and inference engine for agents. …

2026/8/21 21:28:13

游戏逆向分析实战:从内存扫描到FName算法解析

1. 从“王权与自由”到通用分析:理解游戏外挂逆向的核心路径 看到“王权与自由-c外挂逆向教程”这个标题,很多人的第一反应可能是想立刻找到某个特定游戏的内存地址,然后写个无敌或秒杀功能。但作为一个有十多年经验的从业者,我必…

2026/8/21 22:49:05

迅为RK开发板批量升级工具Topeet RK Flash全场景应用指南

这次我们来看一个专门为迅为开发板设计的批量升级工具——Topeet RK Flash。对于嵌入式开发者和产线工程师来说,给多台设备刷写固件是个高频且繁琐的活,尤其是在没有网络或需要快速部署的场景下。这个工具的核心目标就是解决这个痛点,它宣称能…

2026/8/21 22:49:05

从API调用到桌面应用:Qt开发AI客户端的核心挑战与架构实践

最近在折腾一个本地知识库问答系统,发现了一个很有意思的现象:很多人把“接入大模型”和“做一个能用的客户端”这两件事的难度搞反了。 大家一提到AI应用,第一反应往往是模型部署、API调用、Prompt工程这些听起来很“硬核”的部分。但真正开…

2026/8/21 22:49:05

Python招聘数据可视化分析系统开发实战

1. 项目背景与核心价值 最近在帮朋友分析IT行业招聘趋势时,发现手动收集整理各平台数据效率极低。于是用Python开发了一套招聘数据可视化分析系统,从数据采集到可视化呈现全流程自动化。这个系统特别适合HR、求职者和行业分析师使用,能够快速…

2026/8/21 22:49:05

电赛H题备赛实战指南:从系统设计到PID调试,告别“已燃尽”

1. 这篇文章真正要解决的问题如果你正在备战全国大学生电子设计竞赛(电赛),尤其是H题,那么“已燃尽”这三个字可能瞬间戳中了你的痛点。这不仅仅是体力上的疲惫,更是一种在复杂系统设计、软硬件联调、时间紧迫和队友协…

2026/8/21 22:49:05

零样本预测新范式:智能体驱动拓扑采样破解建筑能耗预测难题

1. 项目概述:当智能建筑学会“未卜先知”想象一下,你是一家大型商业综合体或智慧园区的运维负责人。每天,你都要面对海量的楼宇物联网数据——空调主机的能耗、新风系统的风量、不同区域的温湿度、甚至电梯的运行频率。这些数据看似杂乱&…

2026/8/21 22:44:05

2026实测:专业降AIGC工具选这款就对了3秒改写无痕迹

2026 年降 AIGC 工具已从“基础语义替换”进化为多维度智能优化系统,核心评测标准涵盖 AI 痕迹清除精准度、专业表述一致性、格式结构完整性、长段落逻辑流畅性、降重适配范围及高校检测合规性。本次测评涵盖 5 款主流工具,测试内容覆盖中英文论文、全文…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…