【Python】你不得不知道的 Python 数据分析神器:Pandas 库 在数据科学中,数据清理是一个极其重要的环节。为了能够更好的处理和分析数据,我们需要将原始数据进行清洗和整理。Pandas 库是一个高效的 Python 数据分析工具,为数据清洗和整理提供了强大的支持。 Pandas 库提供了两种主要的数据结构:Series 和 DataFrame。一个 Series 对象是由一列数据和对应的索引组成的。而一个 DataFrame 则是由多个 Series 对象以列的形式组成的。同时,Pandas 库也提供了许多用于数据清洗的方法和函数。下面让我们来看看一些例子。 创建一个 DataFrame 在 Pandas 中,可以使用 DataFrame() 函数来创建一个 DataFrame。比如,我们可以创建一个包含学生姓名、年龄、成绩的 DataFrame。 ``` python import pandas as pd data = {'name': ['Tom', 'John', 'Marry'], 'age': [20, 21, 19], 'score': [90, 85, 92]} df = pd.DataFrame(data) print(df) ``` 输出结果为: ``` name age score 0 Tom 20 90 1 John 21 85 2 Marry 19 92 ``` 读取文件并创建 DataFrame 除了手动创建 DataFrame,我们也可以从文件中读取数据并创建 DataFrame。Pandas 支持读取多种格式的文件,如 CSV、Excel、HTML、SQL 等。下面以 CSV 文件为例进行演示。 假设有一个名为 'students.csv' 的文件,里面包含学生姓名、年龄、成绩等信息。我们可以使用 read_csv() 函数来读取该文件并创建 DataFrame。 ``` python import pandas as pd df = pd.read_csv('students.csv') print(df) ``` 输出结果为: ``` id name age score 0 1 Tom 20 90 1 2 John 21 85 2 3 Marry 19 92 3 4 Jerry 22 88 ``` 从 DataFrame 中选取数据 Pandas 提供了多种方式来选取 DataFrame 中的数据。 - 选取某一列数据 ``` python import pandas as pd df = pd.read_csv('students.csv') name = df['name'] print(name) ``` 输出结果为: ``` 0 Tom 1 John 2 Marry 3 Jerry Name: name, dtype: object ``` - 选取某个单元格的数据 ``` python import pandas as pd df = pd.read_csv('students.csv') score = df.loc[1, 'score'] print(score) ``` 输出结果为: ``` 85 ``` - 选取某一行数据 ``` python import pandas as pd df = pd.read_csv('students.csv') row = df.loc[1] print(row) ``` 输出结果为: ``` id 2 name John age 21 score 85 Name: 1, dtype: object ``` 数据清洗和整理 Pandas 库提供了许多数据清洗和整理的方法和函数。下面我们将介绍一些常用的方法。 - 缺失值处理 在实际数据中,常常会遇到缺失值的情况。Pandas 中提供了 fillna() 和 dropna() 两个方法来处理缺失值。其中,fillna() 可以将缺失值替换为给定的值,而 dropna() 则可以删除包含缺失值的行或列。 ``` python import pandas as pd import numpy as np data = {'name': ['Tom', 'John', 'Marry', 'Jerry'], 'age': [20, np.nan, 19, 22], 'score': [90, 85, np.nan, 88]} df = pd.DataFrame(data) print(df) # 将缺失值替换为 0 df.fillna(value=0, inplace=True) print(df) # 删除包含缺失值的行 df.dropna(axis=0, inplace=True) print(df) ``` 输出结果为: ``` name age score 0 Tom 20.0 90.0 1 John NaN 85.0 2 Marry 19.0 NaN 3 Jerry 22.0 88.0 name age score 0 Tom 20.0 90.0 1 John 0.0 85.0 2 Marry 19.0 0.0 3 Jerry 22.0 88.0 name age score 0 Tom 20.0 90.0 3 Jerry 22.0 88.0 ``` - 去重 在数据分析中,经常需要去除重复的数据。Pandas 中提供了 drop_duplicates() 方法来去重。 ``` python import pandas as pd data = {'name': ['Tom', 'John', 'Marry', 'Tom'], 'age': [20, 21, 19, 20], 'score': [90, 85, 92, 90]} df = pd.DataFrame(data) print(df) # 去除重复的行 df.drop_duplicates(inplace=True) print(df) ``` 输出结果为: ``` name age score 0 Tom 20 90 1 John 21 85 2 Marry 19 92 3 Tom 20 90 name age score 0 Tom 20 90 1 John 21 85 2 Marry 19 92 ``` - 数据类型转换 在数据分析中,数据类型转换是一个必不可少的环节。Pandas 中提供了 astype() 方法来转换数据类型。 ``` python import pandas as pd data = {'name': ['Tom', 'John', 'Marry'], 'age': [20, 21, 19], 'score': [90, 85, 92]} df = pd.DataFrame(data) print(df) # 将 age 列的数据类型转换为 float 型 df['age'] = df['age'].astype('float') print(df) ``` 输出结果为: ``` name age score 0 Tom 20 90 1 John 21 85 2 Marry 19 92 name age score 0 Tom 20.0 90 1 John 21.0 85 2 Marry 19.0 92 ``` 总结 Pandas 库是 Python 中一个非常强大的数据分析工具。它提供了丰富的数据结构和功能,能够轻松地完成数据清洗和整理,从而使数据分析更加高效精准。