数据清理

发布日期:2026-07-11 12:04:04   来源 : 杭州电子商务研究院    浏览量 :18
杭州电子商务研究院 发布日期:2026-07-11 12:04:04  
18

介绍

本指南介绍了数据清理的概念,包括识别不完整数据、删除粗数据、处理无效数据等。现实世界中出现的大多数数据都是非结构化的,需要重塑和进一步的数据预处理。让我们学习使用Python 中提供的Pandas库进行数据清理的几个步骤。

考虑一个名为student_grade.csv的 CSV 文件,该文件根据 four4 个属性保存了近 1500 名学生的数据。快速了解数据的一个好方法是查看数据集的前 10 行,如下所示:

学生 ID St_GRADE 左学校 阶段
1 2K131 7.5 12
2 2K152 7 12
3 2K163 是的 十三
4 2K174 9 十三
5 2K185 7 13.67
6 2K174 9 十三
7 2K106 8 14.79
8 2K185 6.3 是的 十三
9 2K152 6 十三
10 2K119 12

当前的数据集已经重塑,因此我们定义以下四个目标来执行数据清理任务:

  1. 找出缺失的成绩。
  2. 删除已离校的学生记录。
  3. 识别并删除重复记录(重复条目)。
  4. 识别并更正无效年龄。

基线

要启动该过程,第一步是导入 Pandas 库并读取数据集。

      import pandas as pd
df = pd.read_csv('student_grade.csv')

# Storing the topmost 10 rows in a new variable df_sub
df_sub = df.head(10)
    

.head(10)函数在df变量后使用,用于提取 DataFrame 的前 10 行。

识别缺失的 V 值

在深入研究代码之前,了解缺失数据的可能来源非常重要。以下是缺失数据可能产生的一些原因:

  • 用户可能忘记填写数据。
  • 用户可能没有关于要填写的数据的完整信息。
  • 出现系统错误的可能性。

在St_GRADE列中,我们可以看到空值为n/a,但预览中只有几条记录,完整数据也可能包含任何其他形式的缺失值。让我们识别出n/a 的行:

      missing_values = 'n/a'
df_sub = df_sub[df_sub.St_GRADE==missing_values]
    

输出:

| |学生 ID |学生等级|离开学校|学生年龄| | --- | --- | --- | | 3 | 2K163 | n/a| 是 | 13 |10 | 2K119 | n/a | 否 | 12

大多数情况下,缺失值不是由用户硬编码的。如果用户没有提及任何特定术语(此处为n/a),则 Pandas 将为每个缺失值单元格分配一个NaN值。可以按如下方式识别和处理此类单元格:

      import numpy as np
dummy = pd.Series([45, np.NaN, 12])

# Checking which instances have missing values
dummy.isnull()

# Output:
# 0 False
# 1 True
# 2 False
# dtype: bool

# To fill the missing values, use fillna()
dummy = dummy.fillna(5)
dummy

# Output:
# 0 45.0
# 1 5.0
# 2 12.0
# dtype: float64
    

从上面的代码中可以注意到,在向虚拟Series填充整数5后,我们仍然会收到 float 数据类型的输出。这是因为在数据类型为float64的 Series 中最初存在NaN

删除已离校学生记录已离校学生记录

接下来,让我们删除已离开学校的学生的记录。这是因为,从长远来看,这些数据可能没有用处,或者这可能会导致数据量增加。为了实现这一点,我们对 DataFrame 进行子集化,包括St_GRADE列中单元格的值不等于YES 的所有行。

      # Subsetting the DataFrame df based on the St_GRADE column
df_sub = df_sub[df_sub.St_GRADE != 'YES']
    

您可以观察已删除记录的输出,如下所示:

学生 ID St_GRADE 左学校 阶段
1 2K131 7.5 12
2 2K152 7 12
3 2K174 9 十三
4 2K185 7 13.67
5 2K174 9 十三
6 2K106 8 14.79
7 2K152 6 十三

识别并删除重复记录删除重复记录

为了识别 DataFrame 的重复记录,我们可以使用Pandas 库中的duplicated()函数。

      # Checking the duplicate rows
df_sub["is_duplicate"]= df_sub.duplicated()
    

上述代码查找重复的实例,并使用布尔逻辑标记它们,如果行重复则为True ,否则为False。 之后,结果存储在DataFrame df_sub的名为is_duplicate的列中,如下所示:

学生 ID St_GRADE 左学校 阶段 是否重复
1 2K131 7.5 12 错误的
2 2K152 7 12 错误的
3 2K174 9 十三 错误的
4 2K185 7 13.67 <font style="vertical-a
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据