当前位置:首页>python>《Python办公数据分析》第3课:数据清洗与预处理,告别“脏数据”

《Python办公数据分析》第3课:数据清洗与预处理,告别“脏数据”

  • 2026-10-11 08:38:11
《Python办公数据分析》第3课:数据清洗与预处理,告别“脏数据”

《Python办公数据分析》第3课:数据清洗与预处理,告别“脏数据”

欢迎来到《Python办公数据分析》系列的第三讲。上一节课,我们学习了如何用Pandas读取Excel和CSV文件。但在真实的办公环境中,我们拿到的数据往往不是完美的。可能有空值、有重复项、有格式错误,这些被称为“脏数据”。如果不经过清洗就直接分析,得出的结论很可能是错误的。

欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本

此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅

什么是数据清洗?

简单来说,数据清洗就是找出数据中的异常和不一致,并进行修正的过程。
在Pandas中,我们主要处理以下三种常见的“脏数据”:

  • • 缺失值(空值)
  • • 重复值
  • • 异常值和数据类型转换

第一步:处理缺失值 (Missing Values)

在Excel里,看到空白单元格是很正常的事,但在Python中,它们通常会被识别为 NaN (Not a Number)。

1. 查找缺失值

首先要了解哪些列存在缺失值,以及缺失的数量。

import pandas as pd
df = pd.read_excel('sales_data.xlsx')

# 查看各列是否有缺失值以及数量
print(df.isnull().sum())

2. 删除缺失值

如果某行数据缺失严重,或者该数据无关紧要,最简单的方法是直接删除整行。

# 删除包含任何缺失值的行
df_clean = df.dropna()

# 仅当所有列都为空时才删除
df_clean = df.dropna(how='all')

# 仅在特定列(如'金额')存在缺失值时删除
df_clean = df.dropna(subset=['金额'])

3. 填充缺失值

如果不舍得删除,也可以用一个合理的值来填补空缺(比如用0、平均值、中位数或前一个有效值)。

# 用0填充所有缺失值
df_filled = df.fillna(0)

# 用平均值填充'金额'列
mean_value = df['金额'].mean()
df['金额'] = df['金额'].fillna(mean_value)

# 用前一个有效值填充(适合时间序列数据)
df_filled = df.fillna(method='ffill')

第二步:处理重复值 (Duplicates)

重复录入的数据会干扰统计结果,导致总和虚高。Pandas清理重复项非常方便。

1. 查找重复项

# 查看是否存在重复行(返回布尔型Series)
print(df.duplicated().sum())

2. 删除重复项

# 删除完全重复的行,保留第一条出现的记录
df_unique = df.drop_duplicates()

# 基于某一列(例如'订单编号')去重,保留最后一条出现的记录
df_unique = df.drop_duplicates(subset=['订单编号'], keep='last')

第三步:数据类型转换与格式化

有时候,读取上来的日期变成了字符串,数字变成了文本,这就需要进行类型转换。

1. 转换数据类型

# 将'销售额'列转换为浮点数
df['销售额'] = df['销售额'].astype(float)

# 将'订单日期'转换为标准的datetime类型
df['订单日期'] = pd.to_datetime(df['订单日期'])

2. 字符串处理

在办公中,经常需要对文本列进行截取、替换等操作。Pandas的 str 属性提供了丰富的方法。

# 去除'客户姓名'列前后的空格
df['客户姓名'] = df['客户姓名'].str.strip()

# 替换文本(将'Male'替换为'男')
df['性别'] = df['性别'].str.replace('Male', '男')

实战演练

在实际工作中,通常将这些清洗步骤串联起来执行:读取数据 -> 检查空值和重复项 -> 填补/删除空值 -> 去重 -> 转换类型 -> 保存清洗后的数据。这是一套标准的“流水线作业”。

课后小作业

  1. 1. 找一份包含空值和重复行的Excel。
  2. 2. 尝试用Pandas去除重复行,并将数值列的空值填充为0。
  3. 3. 将清洗后的干净数据保存为新的Excel文件。

下一节预告:数据清洗完毕后,重头戏来了。在第4课中,我们将进入数据分析的核心——如何像使用Excel数据透视表一样,用Python进行数据分组与透视,洞察业务规律!

最新文章

随机文章