Python 数据清洗与预处理全攻略:从入门实战到高效进阶

Python 数据清洗与预处理全攻略:从入门实战到高效进阶

在数据驱动的时代,原始数据往往“脏乱差”:缺失值、重复项、数据类型错配、格式混乱……这些问题如果放任不管,模型训练准确性会大打折扣,业务决策也会走偏。本文将带你从基础工具入门,到大规模数据流的高效并行方案,结合丰富的 Python 代码示例与实践案例,帮助初学者快速上手,也为资深开发者提供深度优化思路,让你在数据清洗和预处理的道路上既有温度又有力量。


一、为什么要关注数据清洗与预处理

数据科学家经常说:“80% 的时间花在清洗数据,20% 的时间花在建模。”
清洗不彻底,模型结构再优秀也救不回糟糕的输入。

  • 原始数据的常见问题

    • 缺失值(Missing Values)
    • 异常值(Outliers)
    • 数据格式不统一(如日期字符串、数值单位)
    • 重复记录(Duplicates)
    • 噪声和无效字段
  • 数据清洗与预处理价值

    1. 保证数据质量,提升后续分析和模型的可靠性
    2. 节省算力、加快迭代:删除冗余或无关字段后,运算更敏捷
    3. 提升可维护性:清晰的 pipeline 有助于团队协作和复现

二、基础篇:利用 Pandas 快速上手

Pandas 是 Python 数据清洗与预处理的“瑞士军刀”。其核心对象 DataFrame 具有直观的行列结构,非常适合表格型数据。

2.1 读取与基本探索

import pandas as pd

# 从 CSV、Excel、数据库读取
df = pd.read_csv('data/users.csv', parse_dates=['signup_date'])
print(df.info())
print(df.head())
  • df.info():查看每列的非空计数和数据类型
  • df.describe():数值字段的统计摘要
  • df.dtypes:快速检查类型,及时转换

2.2 缺失值处理

# 统计缺失值
missing = df.isnull().sum()
print(missing[missing > 0])

# 删除缺失率高的列
thresh = len(df) * 0.5
df = df.dropna(axis=1, thresh=thresh)

# 填充缺失
df['age'] = df['age'].fillna(df['age'].median())
df['city'] = df['city'].fillna('Unknown')
  • .dropna(thresh=…):删除缺失比例超过阈值的行/列
  • .fillna():用均值、中位数、众数或自定义值填补

2.3 重复值去重

# 找到重复行
dups = df.duplicated(subset=['user_id', 'email'])
print(f"重复记录:{
     
     dups.sum()} 条")

# 去重
df = df.drop_duplicates(subset=['user_id', 'email'], keep='first')
  • subset:指定关键列组合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水白石008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值