尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
机器学习之数据清洗(Machine Learning about Data Cleaning)
一、数据清洗1、基础知识1.1 数据清洗的用途爬虫获取的原始数据往往存在各种问题HTML标签残余空格换行不一致编码混乱格式不一致有缺失值这些问题如果不解决将会影响后续的数据分析与挖掘工作。数据清洗是整个爬虫项目不可或缺的一环其决定了最终数据的质量。数据清洗不是一次性工作而是需要根据实际需求分析需求反复迭代的过程。1.2 常见数据问题与解决方案问题一多余空格和换行字符串前后的空白字符是爬虫数据中最常见的问题。使用 str.strip() 能够去除首尾空格df[name] df[name].str.strip()问题二HTML标签残留从网页直接提取的文本可能包含未解析的HTML标签使用正则表达式可以清除它们df[content] df[content].str.replace(r[^], , regexTrue)问题三提取数字或特定格式有时需要从混合文本里提取出特定的信息比如从“666元”里面提取数字df[price_num] df[price].str.extract(r(\d))[0].astype(float)问题四文本格式不统一对于城市名称有时需要大小写进行区分因此需要进行 upper、title 或 lower 等操作df[city] df[city].str.title() #首字母大写其余小写df[city] df[city].str.upper() # 全部大写df[city] df[city].str.lower() # 全部小写1.3 缺失值处理现实数据里面往往会有缺失值NaN的出现因此需要对其进行相关处理方法说明适用场景df.fillna(value)使用指定值进行填充缺失缺失有明确的含义df.dropna(value)删除包含缺失值的行缺失数据较少时df[col].fillna(mean)用均值/中位数填充数值型字段# 查看每列的缺失值数量 df.isnull().sum() # 用0填充缺失值 df.fillna(0) # 删除有缺失值的行 df.dropna() # 用均值填充数据型缺失值 df[score].fillna(df[score].mean())实战建议先使用df.isnull().sum()了解缺失情况再决定处理策略。如果某列缺失率超过50%通常考虑删除该列而非填充。1.4 数据类型转换有时需要提取数据类型不符合预期例如有时需要数字类型但爬虫数据是字符串类型# 转换为数值型 df[age] pd.to_numeric(df[age], errorscoerce) # 转换为日期型 df[date] pd.to_datetime(df[date], errorscoerce) # 转换为字符串 df[phone] df[phone].astype(str)注意errorscoerce参数会在转换失败时将值设为NaN而不是抛出异常这是处理脏数据的好帮手
RELATED

相关推荐

Java后端转Agent必看:5个阶段助你快速上手并收藏这份学习指南!

Java后端转Agent必看:5个阶段助你快速上手并收藏这份学习指南!

本文针对Java后端转Agent岗位的程序员,提出了五个学习阶段:掌握LLM API调用、理解Tool Calling、实现RAG知识库、使用Agent框架以及完成一个可展示的项目。文章强调实际业务问题的解决能力而非全面掌握所有技术,建议边学边投简历,…

📅 2026/9/30 7:16:51
【2018-04-28】TLS简单笔记-SSL中的RSA、DHE、ECDHE、ECDH流程与区别

【2018-04-28】TLS简单笔记-SSL中的RSA、DHE、ECDHE、ECDH流程与区别

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2018-04-28 | 标题:TLS简单笔记-SSL中的RSA、DHE、ECDHE、ECDH流程与区别 | 分类: 编程 &…

📅 2026/9/30 7:16:51
ArrayList vs LinkedList:性能对决全解析!

ArrayList vs LinkedList:性能对决全解析!

全文目录:开篇语一、ArrayList:一间会自动扩建的“顺序仓库”1.1 底层结构1.2 扩容机制(grow 策略)1.3 时间复杂度分析(ArrayList)二、LinkedList:一条会插队的“双向人链”2.1 底层结构&#x…

📅 2026/9/30 7:16:51
MORE NEWS

更多资讯

📰

段式内存管理地址变换与越界检查:课堂练习4.1复盘

课堂练习4.1 的题目发下来的时候,我第一反应是这题应该不难——段式内存管理翻来覆去就那几个公式:拆地址、查段表、做检查、加基址。结果真拿起笔算第一道小题,还是卡了两分钟。卡的点不在于公式本身,而在于题干给的那组数字里藏…

📰

基于YOLOv8的舰船目标检测系统:从数据集标注到PyQt5界面集成

舰船目标检测这个方向,我前后折腾过三套方案,从最早的 YOLOv5 改配置文件,到后来用 YOLOv8 重新搭一套带界面的完整系统,中间踩的坑足够写一本小册子。很多人第一次接触这类项目,会觉得"不就是拿个预训练权重跑一…

📰

JMeter实战入门:以飞致云平台为靶标快速掌握接口测试核心技能

1. 为什么飞致云平台成了JMeter入门的“黄金练兵场”很多人第一次打开JMeter,面对空白的测试计划树和密密麻麻的线程组、HTTP请求、断言、监听器,第一反应是:这玩意儿到底在测什么?测谁?测完又怎么知道对不对&#xff…

📰

Mac读写NTFS移动硬盘的三种实用方案:从驱动到exFAT

朋友抱着一块移动硬盘来找我:“这个盘在Windows上拷满了资料,插到你Mac上试试能不能读?”我接过硬盘插上去,系统确实认出了分区,可当我试着往盘里拖新文件夹时,Mac直接弹窗拒绝。这块盘是NTFS格式&#xff…

📰

逐行拆解one-skill-to-rule-them-all的bash脚本:ID推导、归档扫描,以及你必须防住的三种静默失败

逐行拆解one-skill-to-rule-them-all的bash脚本:ID推导、归档扫描,以及你必须防住的三种静默失败 【免费下载链接】one-skill-to-rule-them-all The meta-skill that builds and improves all your skills, including itself. Watches your work session…

📰

银河麒麟v10 SP1安装Docker:前置问题、内核参数与离线部署指南

简介:银河麒麟V10 SP1 Server上安装Docker的实操手册,面向国产化服务器环境下的运维与开发人员,专门解决官方源未收录Docker服务端软件包、直接yum安装失败的问题。资料包含一个docx格式文档,压缩包体积仅17KB,篇幅短小…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬