欢迎访问宙启技术站
智能推送

利用 Python 函数进行数据清洗和预处理

发布时间:2023-06-05 14:00:09

数据清洗和预处理是数据分析过程中不可或缺的一环,它涉及到数据的筛选、转换、填充、去重、合并等多个方面。Python 作为一种广泛应用于数据分析领域的高级编程语言,有着非常丰富的函数库和工具集,可以方便地进行数据清洗和预处理工作。

一、数据读取

在 Python 中,我们可以使用 Pandas 库中的 read_csv() 函数读取 CSV 文件。该函数支持自定义分隔符、解码方式及缺失值填充等多种参数设置。例如,如果我们要读取一个以逗号分隔的 CSV 文件,可以使用如下代码:

import pandas as pd

df = pd.read_csv("data.csv")

在读取数据时,我们可以传入一些更加细致的参数,比如指定编码方式(encoding)、缺失值填充方式(na_values)等。这里不再一一赘述,读者可以自行查阅相关文档。

二、数据筛选

数据筛选是指根据特定条件,从原始数据中挑选出符合条件的数据子集。在 Python 中,可以使用 Pandas 库中的 DataFrame.loc 或 DataFrame.iloc 函数进行数据筛选。其中,loc 函数使用标签索引进行筛选,而 iloc 函数使用整数索引筛选。

例如,下面的代码演示了如何从一个 DataFrame 中选取其中某列数值大于 10 的数据:

import pandas as pd

df = pd.DataFrame({

    'A': [1, 2, 3, 4, 5],

    'B': [6, 7, 8, 9, 10]

})

filtered_df = df[df['B'] > 10]

print(filtered_df)

输出结果是:

Empty DataFrame

Columns: [A, B]

Index: []

可以看到,此时没有符合条件的数据。

三、数据转换

数据转换是指对原始数据进行格式、类型、结构等方面的变换,以便更好地进行分析和处理。在 Python 中,可以使用 Pandas 库中的相关函数进行数据转换。

例如,下面的代码演示了如何将一个 DataFrame 中某列的数据类型由字符串转换为浮点型:

import pandas as pd

df = pd.DataFrame({

    'A': ['1.1', '2.2', '3.3', '4.4', '5.5'],

    'B': [6, 7, 8, 9, 10]

})

df['A'] = df['A'].astype(float)

print(df)

输出结果是:

     A   B

0  1.1   6

1  2.2   7

2  3.3   8

3  4.4   9

4  5.5  10

可以看到,此时 A 列的数据类型已经变成了浮点型。

四、数据填充

数值缺失是常见的数据问题之一,在数据分析过程中需要进行相应的处理。在 Python 中,可以使用 fillna() 函数进行数据填充。

例如,下面的代码演示了如何将一个 DataFrame 中的所有缺失值填充为 0:

import pandas as pd

df = pd.DataFrame({

    'A': [1, 2, None, 4, 5],

    'B': [6, None, 8, 9, 10]

})

df = df.fillna(0)

print(df)

输出结果是:

     A     B

0  1.0   6.0

1  2.0   0.0

2  0.0   8.0

3  4.0   9.0

4  5.0  10.0

可以看到,此时所有的缺失值都被填充为了 0。

五、数据去重

数据去重是指对数据中的重复项进行处理,以便更好地进行分析和处理。在 Python 中,可以使用 Pandas 库中的 drop_duplicates() 函数进行数据去重。

例如,下面的代码演示了如何将一个 DataFrame 中的重复记录去除:

import pandas as pd

df = pd.DataFrame({

    'A': [1, 2, 3, 2, 4],

    'B': [6, 7, 8, 7, 9]

})

df = df.drop_duplicates()

print(df)

输出结果是:

   A  B

0  1  6

1  2  7

2  3  8

4  4  9

可以看到,此时已经去除了重复的记录。

六、数据合并

数据合并是指将多个数据集合并成为一个大的数据集,以便更好地进行分析和处理。在 Python 中,可以使用 Pandas 库中的 merge() 或 concat() 函数进行数据合并。

例如,下面的代码演示了如何将两个 DataFrame 按照某列进行合并:

import pandas as pd

df1 = pd.DataFrame({

    'A': ['a1', 'a2', 'a3'],

    'B': ['b1', 'b2', 'b3'],

    'C': ['c1', 'c2', 'c3']

})

df2 = pd.DataFrame({

    'A': ['a1', 'a4', 'a5'],

    'D': ['d1', 'd2', 'd3'],

    'E': ['e1', 'e2', 'e3']

})

merged_df = pd.merge(df1, df2, on='A')

print(merged_df)

输出结果是:

    A   B   C   D   E

0  a1  b1  c1  d1  e1

可以看到,此时两个 DataFrame 根据 A 列进行了合并,只保留了 A 列在两个 DataFrame 中均出现的记录。

总结

Python 的 Pandas 库为数据清洗和预处理提供了丰富的函数库和工具集,可以方便地进行数据筛选、转换、填充、去重和合并等操作。了解和掌握这些函数的使用方法,将有助于在数据分析和建模过程中更加高效准确地处理和分析数据。