数据分析(数据清洗)

Python 数据分析 07:数据清洗 ------ 我的思路自述

目标:把原始表里的缺失值、重复值、异常值、格式问题逐一收拾干净。

先上代码

import pandas as pd

pd.set_option('display.min_rows', 30) # 默认显示10行,调成30行方便核对

1. 读取数据

df = pd.read_csv('data/sales.csv')

var1 = df

2.1 缺失值处理

var2 = df.isnull() # 查找哪些单元格缺失

var3 = df.dropna() # 删除含缺失值的行

var4 = df.dropna(axis=1) # 删除含缺失值的列

var5 = df.fillna('上海') # 用指定值填充

var6 = df.ffill() # 用上一行填充

var7 = df.bfill() # 用下一行填充

2.2 重复值处理

var8 = df.duplicated() # 所有列都相同才算重复

var9 = df.duplicated(subset='订单号') # 指定列重复即算重复

var11 = df.drop_duplicates(subset='订单号', keep='first') # 按订单号去重,保留第一条

2.3 异常值处理

var12 = dfdf\['单价' < 0] # 查看单价为负的异常行

var13 = df.drop(dfdf\['单价' < 0].index) # 删除这些异常行

df'单价' = df'单价'.abs() # 或修复:取绝对值把负数掰正

2.4 数据格式处理

方法一:仅改单一具体值,不推荐

df'订单日期' = df'订单日期'.replace('2025/06/02', '2025-06-02')

方法二:整列统一替换,推荐

df'订单日期' = df'订单日期'.str.replace('/', '-')

df

我的思路:真实数据很脏,清洗就是"四类体检"

过滤是"挑好的",清洗是"治病的"。我按四种脏数据对症下药,每类都是先查后治。

第一类·缺失值。 先 df.isnull() 看哪儿有空。治法分两派:删或填。dropna() 默认删含空值的整行,加 axis=1 变删列------这里我差点翻车,drop 和 dropna 是两个东西,删缺失值得用 dropna(df.drop(axis=1) 不给列名会直接报错)。填则是 fillna('上海') 统一填指定值,或 ffill() 用上一行、bfill() 用下一行填。

第二类·重复值。 duplicated() 默认要所有列都一模一样才算重,我常用 subset=['订单号'] 只按某列判重。治用 drop_duplicates(subset=['订单号'], keep='first'),keep 决定留第一条、留最后一条还是全不留。

第三类·异常值。 单价出现负数明显不对,df[df['单价'] < 0] 先揪出来看。处理两条路:删------df.drop(df[...].index) 先筛坏行再按索引 drop;修------.abs() 取绝对值把负数掰正,数据量不丢。

第四类·格式。 日期有人写斜杠有人写横杠。replace('2025/06/02',...) 只能改这一个具体值、不通用;正解是 str.replace('/','-') 整列一次性替换,这才是批量清洗该用的。

相关推荐
天天被压力5 小时前
【A股分钟级高频数据完全手册 #04】指数分钟级行情数据接口:沪深指数Pro版最新分时取数
java·人工智能·python
日日大王学编程5 小时前
2026主流AI Agent产品分类、核心差异与技术特性全解析
人工智能·后端·python
天天被压力6 小时前
【A股分钟级高频数据完全手册 #03】股票历史1分钟K线数据接口怎么用:Pro版批量拉取与本地缓存
java·人工智能·python
Z21-X6 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Rabitebla14 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
无心水19 小时前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
蒸蒸yyyyzwd19 小时前
邓明 Agent 系统面试-意图识别学习笔记
笔记·学习
武天旭21 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
GrowingIO技术社区21 小时前
CDP项目如何评估?从业务问题到能力测试
大数据·数据分析
衡石科技1 天前
衡石高性能分析架构:HQL、查询下推与多层加速的协同设计
架构·数据分析