数据分析--数据清洗
一、数据清洗的重要性:数据质量决定分析成败
1.1 真实案例警示
- 电商平台事故:2019年某电商大促期间,因价格数据未清洗导致错误标价,产生3000万元损失
- 医疗数据分析:未清洗的异常血压值(如300mmHg)导致疾病预测模型准确率下降27%
- 金融风控失效:重复借贷申请未去重,造成1.2亿元坏账
1.2 数据质量问题

二、数据分析全流程与清洗定位
2.1 六步分析法(清洗为核心)
- 需求定义:明确业务目标(如用户流失分析)
- 数据采集:数据库查询/API获取/日志收集
- 数据清洗:本阶段耗时占比达60-70%
- 探索分析:统计描述与可视化
- 建模分析:构建预测模型
- 报告输出:制作可视化看板
2.2 清洗流程标准化

企业级处理流程

三、Python数据清洗核心函数详解
3.1 Pandas清洗工具箱
# 缺失值处理
df.dropna(subset=['关键字段']) # 删除关键字段缺失行
df['年龄'].fillna(df['年龄'].median(), inplace=True) # 中位数填充# 重复值处理
df.drop_duplicates(subset=['订单ID'], keep='last') # 保留最新记录# 异常值处理
df = df[(df['销售额'] > 0) & (df['销售额'] < 1e6)] # 合理范围过滤# 格式转换
df['日期'] = pd.to_datetime(df['日期'], errors='coerce') # 强制日期格式
3.2 高级清洗技巧
# 跨字段逻辑校验
df = df[~(df['会员等级'] == '黄金会员') & (df['累计消费'] < 5000)] # 剔除矛盾数据# 文本清洗
df['地址'] = df['地址'].str.replace(r'\s+', '') # 去除空白字符
df['手机号'] = df['手机号'].str.extract(r'(\d{11})')[0] # 提取有效号码# 分类型数据处理
df['年龄段'] = pd.cut(df['年龄'], bins=[0,18,30,50,100],labels=['未成年','青年','中年','老年'])
四、电商数据清洗实战案例
4.1 原始数据样例
id: raw_data_sample
name: 原始数据示例
type: code.python
content: |-raw_data = [{"order_id": "A1001", "user_id": 101, "amount": 150.0, "date": "2023-02-30"},{"order_id": "A1001", "user_id": 101, "amount": -150.0, "date": "2023/02/28"},{"order_id": "A1002", "user_id": None, "amount": 300.0, "date": "2023-03-01"},{"order_id": "A1003", "user_id": 103, "amount": "二百元", "date": "2023-03-02"}]
4.2 分步清洗演示
# 步骤1:加载数据
import pandas as pd
df = pd.DataFrame(raw_data)# 步骤2:处理重复订单
print(f"清洗前数据量:{len(df)}")
df = df.drop_duplicates(subset=['order_id'], keep='last')# 步骤3:修复日期格式
df['date'] = pd.to_datetime(df['date'], errors='coerce')
df = df[df['date'].notnull()]# 步骤4:校验金额字段
df['amount'] = pd.to_numeric(df['amount'], errors='coerce')
df = df[(df['amount'] > 0) & (df['amount'] < 10000)]# 步骤5:处理用户缺失
df['user_id'] = df['user_id'].fillna(0).astype(int)print(f"清洗后有效数据:{len(df)}")
print(df)
4.3 清洗效果对比

五、数据清洗最佳实践
5.1 标准化检查清单
- 完整性检查:关键字段缺失率<5%
- 一致性验证:时间顺序逻辑正确
- 格式标准化:统一日期/数值格式
- 业务规则校验:符合业务逻辑约束
5.2 常见错误预防
- 不要直接修改原始数据:始终保留原始副本
- 建立数据血缘追踪:记录每次清洗操作
- 自动化测试案例:验证清洗规则的准确性
# 单元测试示例
def test_phone_format():test_data = pd.Series(['138-1234-5678', 'abc123'])cleaned = test_data.str.replace(r'\D', '')assert cleaned[0] == '13812345678'assert pd.isna(cleaned[1])
工具推荐:
- 数据质量检测库:Great Expectations
- 自动化清洗框架:PySpark
- 可视化工具:Dataiku
通过系统化的数据清洗,可使分析结果可靠性提升40%以上。记住:垃圾数据进,垃圾结论出!清洗是数据价值挖掘的第一道防线。
若教眼底无离恨,不信人间有白头。 —辛弃疾
相关文章:
数据分析--数据清洗
一、数据清洗的重要性:数据质量决定分析成败 1.1 真实案例警示 电商平台事故:2019年某电商大促期间,因价格数据未清洗导致错误标价,产生3000万元损失医疗数据分析:未清洗的异常血压值(如300mmHgÿ…...
✨1.HTML、CSS 和 JavaScript 是什么?
✨✨ HTML、CSS 和 JavaScript 是构建网页的三大核心技术,它们相互协作,让网页呈现出丰富的内容、精美的样式和交互功能。以下为你详细介绍: 🦋1. HTML(超文本标记语言) 定义:HTML 是一种用于描…...
QT--常用对话框
文章目录 前言一、颜色对话框颜色对话框代码解析 二、文本对话框文本对话框代码解析 三、输入对话框1.整型输入对话框2.浮点数输入对话框3.条目对话框 四、提示对话框1.提问对话框2.消息对话框3.警告对话框4.关键对话框 五、进度对话框六、向导对话框总结 前言 今天介绍几种标…...
基于 Ollama 工具的 LLM 大语言模型如何部署,以 DeepSeek 14B 本地部署为例
简简单单 Online zuozuo :本心、输入输出、结果 文章目录 基于 Ollama 工具的 LLM 大语言模型如何部署,以 DeepSeek 14B 本地部署为例前言下载 Ollama实际部署所需的硬件要求设置 LLM 使用 GPU ,发挥 100% GPU 性能Ollama 大模型管理命令大模型的实际运行资源消耗基于 Ollam…...
图的最小生成树算法: Prim算法和Kruskal算法(C++)
上一节我们学习了最短路径算法, 这一节来学习最小生成树. 最小生成树(Minimum Spanning Tree, MST)算法是图论中的一种重要算法, 主要用于在加权无向图中找到一棵生成树, 使得这棵树包含图中的所有顶点, 并且所有边的权重之和最小. 这样的树被称为最小生成树. 最小生成树广泛应…...
WPS的AI助手进化跟踪(灵犀+插件)
Ver V0.0 250216: 如何给WPS安装插件用以支持其他大模型LLM V0.1 250217: WPS的灵犀AI现在是DeepSeek R1(可能是全参数671B) 前言 WPS也有内置的AI,叫灵犀,之前应是自已的LLM模型,只能说是属于“能用,有好过无”,所…...
我用AI做数据分析之数据清洗
我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样? 这里描述自己在使用AI进行数据分析(数据清洗)过程中的几个小故事: 1. 变量名的翻译 有一个项目是某医生自己收集的数据,变量名使用的是中文,分…...
一周学会Flask3 Python Web开发-request请求对象与url传参
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili request请求对象封装了从客户端发来的请求报文信息,我们可以从中获取所有数据。 request对象包含的常用属性&…...
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析④】
ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase04 作者:车端域控测试工程师 更新日期:2025年02月17日 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-004测试用例 用例ID测试场景验证要点参考条款预期结果TC…...
网络技术变迁:从IPv4走向IPv6
目录 前言 旧时代产物:IPv4 什么是IPv4? IPv4的工作方式 IPv4的缺点 为什么要从IPv4过渡到IPv6? 走向IPv6:新一代互联网协议 IPv6的技术特性 我们需要过渡技术 双栈(Dual Stack) 隧道技术&#…...
DeepSeek教unity------事件管理
1. 定义事件类型 定义一个枚举来表示不同类型的事件。组织和识别不同的事件。 2. 创建事件参数类 为了让事件携带数据,创建一个通用的事件参数类或者为每个事件类型创建特定的参数类。 3. 实现事件管理器 创建一个EventManager类,用于管理事件的注册…...
确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了
智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…...
RedisTemplate存储含有特殊字符解决
ERROR信息: 案发时间: 2025-02-18 01:01 案发现场: UserServiceImpl.java 嫌疑人: stringRedisTemplate.opsForValue().set(SystemConstants.LOGIN_CODE_PREFIX phone, code, Duration.ofMinutes(3L)); // 3分钟过期作案动机: stringRedisTemplate继承了Redistemplate 使用的…...
28、深度学习-自学之路-NLP自然语言处理-做一个完形填空,让机器学习更多的内容程序展示
import sys,random,math from collections import Counter import numpy as npnp.random.seed(1) random.seed(1) f open(reviews.txt) raw_reviews f.readlines() f.close()tokens list(map(lambda x:(x.split(" ")),raw_reviews))#wordcnt Counter() 这行代码的…...
【NLP 22、语言模型 language model】
有时候我也想听听,我在你心里,是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的,也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲,语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…...
刚性平衡机建模
这两个公式是动平衡机中用于描述旋转部件振动行为的动力学方程。它们分别描述了旋转部件在平移振动和扭转振动中的运动规律,用于分析不平衡量对系统的影响。以下是详细解释: 1. 第一个公式:平移振动的动力学方程 M d 2 y d t 2 2 K y 0 m 1…...
【算法】双指针(上)
目录 双指针 左右指针(对撞指针) 快慢指针 移动零 双指针解题 复写零 暴力解题 双指针解题(快慢指针) 快乐数 双指针解题(快慢指针) 盛最多水的容器 暴力解题(会超时) 双指针解题(左右指针) 有效三角形的个数 暴力解题 双指针解题(左右指针) 双指针 常见的双指…...
【Linux Redis】关于用docker拉取Redis后,让虚拟机运行起来redis,并使得其可以连接到虚拟机外的navicat。
步骤一:拉取Redis镜像 docker pull redis 这个命令会下载最新版本的Redis镜像到你的本地Docker仓库中。你也可以指定一个具体的版本号,例如docker pull redis:6.2.6,来拉取特定版本的Redis镜像。 如果拉取遇到问题请参考【Linux AnolisOS】关…...
用deepseek学大模型04-模型可视化与数据可视化
deepseek.com: pytorch可视化工具 生成神经网络图 在 PyTorch 中,可视化神经网络结构的常用工具和方法有以下几种,以下将详细介绍它们的用法: 1. TensorBoard (PyTorch 官方集成) PyTorch 通过 torch.utils.tensorboard 支持 TensorBoard&a…...
一周学会Flask3 Python Web开发-post请求与参数获取
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili app.route 装饰器默认只支持get请求。假如我们要让绑定的视图函数支持其他请求方式,我们可以在methods属性里配置…...
基于Docker沙盒构建安全隔离的AI模型运行环境
1. 项目概述:构建一个专为AI模型运行而生的Docker沙盒最近在折腾本地AI应用部署时,遇到了一个挺典型的问题:我想用Ollama跑一个叫OpenClaw的模型,但直接装在宿主机上,总担心它和系统里其他服务(比如我的开发…...
3个步骤让B站视频下载变得像点外卖一样简单
3个步骤让B站视频下载变得像点外卖一样简单 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 你是否曾经遇到过这样的烦恼:网络不稳定时想看的B站视频总是缓冲,或…...
避开这些坑!用ARMA、LSTM做股票预测时,你的数据预处理和评估指标可能都错了(数学建模/科研复盘)
金融时间序列预测的七个致命误区:从ARMA到LSTM的深度纠偏指南 当你第一次用ARMA模型拟合股票数据时,那个漂亮的0.9的R值是否让你欣喜若狂?当LSTM在测试集上展现出惊人的95%预测准确率时,是否觉得已经掌握了市场波动的奥秘…...
Hitboxer SOCD工具:彻底解决游戏按键冲突的终极方案
Hitboxer SOCD工具:彻底解决游戏按键冲突的终极方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在激烈的游戏对抗中,你是否曾因同时按下左右方向键而导致角色卡顿?或者在…...
免费部署企业级Perplexity MCP服务器,为AI助手集成实时搜索与视觉问答
1. 项目概述:一个为AI工作流而生的Perplexity MCP服务器 如果你和我一样,日常重度依赖Claude Code、Cursor这类AI编程助手,那你肯定遇到过这样的场景:想查一个最新的技术方案,或者对一个复杂的错误日志进行深度分析&a…...
VSCode远程开发延迟骤降47%的秘密(基于Linux kernel 6.11+eBPF trace的VSCode Server通信栈深度剖析)
更多请点击: https://intelliparadigm.com 第一章:VSCode 2026远程开发延迟骤降47%的工程事实与性能基线 VSCode 2026正式版于2025年Q4发布,其远程开发(Remote-SSH / Dev Containers)模块在真实企业级负载下实测平均端…...
避开FANUC机器人后台编程的坑:DO状态输出程序组掩码设置与常见错误
FANUC机器人后台编程实战:DO信号输出与组掩码深度解析 在工业自动化领域,FANUC机器人以其稳定性和灵活性著称,而后台程序(Background Logic)作为其重要功能之一,常被用于实时监控和状态输出。然而,许多工程师在实际开发…...
基于WebSocket RPC的OpenClaw多智能体可视化仪表盘ZIMZ设计与部署
1. 项目概述:为OpenClaw打造一个实时、清晰的多智能体仪表盘如果你和我一样,在本地或者VPS上跑着OpenClaw,管理着几个甚至几十个AI智能体,那你肯定经历过这种场景:想知道某个Agent在干什么,得SSH连上去看日…...
显卡驱动深度清理实战:DDU工具完整使用指南
显卡驱动深度清理实战:DDU工具完整使用指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 显卡驱…...
Translumo终极指南:如何用免费开源工具实现游戏、视频、软件的实时屏幕翻译
Translumo终极指南:如何用免费开源工具实现游戏、视频、软件的实时屏幕翻译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Tr…...
