当前位置: 首页 > news >正文

利用Python pandas 数据清洗详细教程

文章目录

  • 前言
  • 一、环境搭建
    • 1. 下载 Python
    • 2. 安装 Python
    • 3 使用 pip 安装 Pandas
  • 二、使用步骤
    • 1.读取数据
    • 2.处理缺失值
    • 3. 处理重复值
    • 4. 处理异常值
    • 5. 数据类型转换
    • 6. 处理不一致的数据


前言

pandas 是 Python 数据处理与分析的得力工具,功能强大,是数据从业者进行数据清洗的首选。本教程将系统介绍用 pandas 进行数据清洗,涵盖数据读取、缺失值与重复值处理、异常值修正、数据类型转换等要点。无论你是新手还是专业人士,都能从中获得清晰指导,为数据分析筑牢基础。


一、环境搭建

在数据分析流程里,数据清洗是关键且基础的环节,它能够提升数据质量,为后续分析工作打下良好基础。pandas 提供了丰富且强大的功能来完成数据清洗任务,以下将详细介绍使用 pandas 进行数据清洗的常见方法和示例。

1. 下载 Python

访问 Python 官方网站,根据你的操作系统(Windows、Mac OS、Linux)选择合适的 Python 版本进行下载。建议下载 Python 3.x 版本,因为 Python 2 已经停止维护。

还可以从小编准备地址下载。

Python 3.7下载地址:https://pan.quark.cn/s/8268bf81f31f
Python 3.9下载地址:https://pan.quark.cn/s/9711a93276ad
Python 3.11下载地址:https://pan.quark.cn/s/9c44793cb24c

2. 安装 Python

访问 Python 官方网站(https://www.python.org/),根据自己的操作系统(Windows、MacOS、Linux)下载并安装 Python 3.x 版本。安装过程中注意勾选 “Add Python to PATH”,以便在命令行中能直接使用 Python。

Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489

3 使用 pip 安装 Pandas

在命令提示符中输入以下命令并回车,以安装 Pandas:

pip install pandas

二、使用步骤

1.读取数据

在进行数据清洗之前,首先需要读取数据。pandas 支持多种文件格式的读取,例如 CSV、Excel 等。

mport pandas as pd

# 读取 CSV 文件
data = pd.read_csv('your_file.csv')

# 读取 Excel 文件
# data = pd.read_excel('your_file.xlsx')

2.处理缺失值

数据中常常会存在缺失值,pandas 提供了多种处理缺失值的方法。

  • 2.1检测缺失值,使用 isnull() 或 isna() 方法来检测数据中的缺失值,它们的功能相同。
data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
  • 2.2删除包含缺失值的行或列,可以使用 dropna() 方法删除包含缺失值的行或列。

# 删除包含缺失值的行
data_without_missing_rows = data.dropna(axis=0)

# 删除包含缺失值的列
data_without_missing_columns = data.dropna(axis=1)
  • 2.3填充缺失值,使用 fillna() 方法可以用特定的值来填充缺失值。
# 使用固定值填充缺失值
data_filled_with_constant = data.fillna(0)

# 使用前一个有效值填充缺失值(向前填充)
data_filled_forward = data.fillna(method='ffill')

# 使用后一个有效值填充缺失值(向后填充)
data_filled_backward = data.fillna(method='bfill')

# 使用均值填充数值列的缺失值
numeric_columns = data.select_dtypes(include=['number']).columns
data[numeric_columns] = data[numeric_columns].fillna(data[numeric_columns].mean())

3. 处理重复值

数据中可能存在重复的记录,需要进行处理。

  • 3.1 检测重复值
    使用 duplicated() 方法检测重复的行。
# 检测重复行
duplicate_rows = data.duplicated()
# 统计重复行的数量
duplicate_count = duplicate_rows.sum()
  • 3.2 删除重复值
    使用 drop_duplicates() 方法删除重复的行。
# 删除重复行
data_without_duplicates = data.drop_duplicates()

4. 处理异常值

异常值可能会影响数据分析的结果,需要进行处理。

  • 4.1 基于统计方法检测异常值
    例如,使用 Z-Score 方法检测数值列的异常值。
import numpy as np

# 计算数值列的 Z-Score
numeric_columns = data.select_dtypes(include=['number']).columns
z_scores = np.abs((data[numeric_columns] - data[numeric_columns].mean()) / data[numeric_columns].std())

# 找出 Z-Score 大于 3 的异常值
outliers = data[(z_scores > 3).any(axis=1)]
  • 4.2 处理异常值,可以选择删除异常值或对其进行修正。
# 删除异常值
data_without_outliers = data[(z_scores <= 3).all(axis=1)]

# 修正异常值,例如将异常值替换为均值
data[numeric_columns] = np.where(z_scores > 3, data[numeric_columns].mean(), data[numeric_columns])

5. 数据类型转换

确保数据类型正确有助于后续的分析工作。

# 将某列转换为数值类型
data['column_name'] = pd.to_numeric(data['column_name'], errors='coerce')

# 将某列转换为日期类型
data['date_column'] = pd.to_datetime(data['date_column'])

6. 处理不一致的数据

数据中可能存在大小写不一致、拼写错误等问题,需要进行处理。

# 将某列的字符串转换为小写
data['string_column'] = data['string_column'].str.lower()

# 修正拼写错误
data['string_column'] = data['string_column'].replace('old_value', 'new_value')

通过以上步骤,你可以使用 pandas 对数据进行全面的清洗,提高数据的质量和可用性,为后续的数据分析工作做好准备。

相关文章:

  • 天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
  • 数据结构篇
  • 环境影响评价(EIA)中,土地利用、植被类型及生态系统图件的制作
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • 【kafka系列】消费者重平衡
  • 探秘 Map 和 Set 底层:二叉搜索树与哈希表的深度解析,解锁高效数据存储秘密!
  • bfs广度优先搜索—邻接矩阵 + 邻接表
  • 如何监控和优化 MySQL 中的慢 SQL
  • 预留:大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)
  • Kubernetes实战教程:基于Vue前端与Java后端的应用部署
  • OpenShift Operator开发探讨
  • 基于智能体和RWA的分布式商业生态商业模型架构设计
  • 元夜照春途——通付盾接入DeepSeek,AI Agent信任系统全面升级
  • 神经网络的学习 求梯度
  • CSS实现与文字长度相同的下划线
  • 清华大学KVCache.AI团队联合趋境科技联合的KTransformers开源项目为什么那么厉害
  • 智慧小区建设标准规范
  • 《鸿蒙教程-答案之书》Text文本显示不同颜色和大小
  • 如何设置 Nginx 连接超时并进行测试(Nginx优化)
  • LeetCode刷题---字符串---1513
  • 国家统计局向多省份反馈统计督察意见
  • 我国城市规划“全面体检”套餐出台,城市体检将逐步与供地计划等挂钩
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • 中国人民银行等四部门联合召开科技金融工作交流推进会
  • 现场丨在胡适施蛰存等手札与文献间,再读百年光华
  • 微软将裁员3%,减少管理层