Pandas数据清洗函数总结

  • Post category:Python

首先,需要明确一下什么是数据清洗。数据清洗是一种处理数据异常值、缺失值、重复值等不合法数据的过程,它是数据处理中不可缺少的一环。Pandas是一种Python的数据处理工具,它提供了很多数据清洗函数来方便数据处理。

Pandas数据清洗函数总结

1. 数据信息观测

在进行数据清洗之前,需要对数据进行观测,了解数据的基本情况。Pandas提供了以下几个函数来实现数据观测:

  • head():查看数据集的前几行数据,默认是前5行。
  • tail():查看数据集的后几行数据,默认是后5行。
  • info():查看数据集的基本信息,包括每列数据的数据类型、数据条数等。
  • describe():查看数据集的统计信息,包括每列数据的数量、均值、标准差等。

举个例子,假设我们有以下数据集:

import pandas as pd

data = {'name': ['Tom', 'Jerry', 'Mike', 'Jack', 'Lucy'], 
        'age': [24, 23, 25, 26, 27],
        'score': [87.5, 91.2, 85.3, 94.1, 90.8],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu']}
df = pd.DataFrame(data)

执行以下代码:

print(df.head())
print(df.tail())
print(df.info())
print(df.describe())

输出如下结果:

    name  age  score       city
0    Tom   24   87.5    Beijing
1  Jerry   23   91.2   Shanghai
2   Mike   25   85.3  Guangzhou
3   Jack   26   94.1   Shenzhen
4   Lucy   27   90.8    Chengdu
    name  age  score       city
0    Tom   24   87.5    Beijing
1  Jerry   23   91.2   Shanghai
2   Mike   25   85.3  Guangzhou
3   Jack   26   94.1   Shenzhen
4   Lucy   27   90.8    Chengdu
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   name    5 non-null      object 
 1   age     5 non-null      int64  
 2   score   5 non-null      float64
 3   city    5 non-null      object 
dtypes: float64(1), int64(1), object(2)
memory usage: 288.0+ bytes
None
             age      score
count   5.000000   5.000000
mean   25.000000  89.780000
std     1.581139   3.553255
min    23.000000  85.300000
25%    24.000000  87.500000
50%    25.000000  90.800000
75%    26.000000  91.200000
max    27.000000  94.100000

2. 数据去重

在数据中,经常会出现重复记录的情况,需要将重复的记录去除。Pandas提供了以下函数来实现数据去重:

  • drop_duplicates():去除完全重复的记录。
  • duplicated():查看哪些记录是重复的。

举个例子,假设我们有以下数据集:

import pandas as pd

data = {'name': ['Tom', 'Jerry', 'Mike', 'Jack', 'Lucy', 'Lucy'], 
        'age': [24, 23, 25, 26, 27, 27],
        'score': [87.5, 91.2, 85.3, 94.1, 90.8, 90.8],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu', 'Chengdu']}
df = pd.DataFrame(data)

执行以下代码:

print(df.drop_duplicates())
print(df.duplicated())

输出如下结果:

    name  age  score       city
0    Tom   24   87.5    Beijing
1  Jerry   23   91.2   Shanghai
2   Mike   25   85.3  Guangzhou
3   Jack   26   94.1   Shenzhen
4   Lucy   27   90.8    Chengdu
    name    age  score   city
0  False  False  False  False
1  False  False  False  False
2  False  False  False  False
3  False  False  False  False
4  False  False  False  False
5   True   True   True   True

从结果中可以看出,使用drop_duplicates()函数去掉了重复记录,并返回新的数据集。而使用duplicated()函数,则返回了各个记录是否重复的布尔值。