本文将介绍 Python 数据预处理的基本方法,包括 Pandas 库的使用、缺失值处理、数据类型转换和数据重复处理等操作。
Pandas 是一个免费、开源的 Python 库,用于数据分析和数据操作。它提供了直观的数据结构 - Series 和 DataFrame,以及简单易用的工具来进行数据分析。
Series 是一种带有标签的一维数组,能够存储任何数据类型(整数、字符串、浮点数等)。可以将其看作是 Python 字典的一种特殊形式,其中索引允许重复。
import pandas as pd
# 创建 Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
# 输出:
# 0 1.0
# 1 3.0
# 2 5.0
# 3 NaN
# 4 6.0
# 5 8.0
# dtype: float64
DataFrame 是一种类似于电子表格或 SQL 表的二维表格数据结构,由多个行和列组成。可以将其看作是 Series 的容器。
# 创建 DataFrame
data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [23, 25, 27], 'gender': ['M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
# 输出:
# name age gender
# 0 Tom 23 M
# 1 Jerry 25 M
# 2 Mike 27 F
在 Pandas 中,我们可以从多种数据源中读取数据,如 CSV 文件、Excel 文件、SQL 数据库等。以 CSV 文件为例:
# 读取 CSV 文件
df = pd.read_csv('data.csv')
在 Pandas 中,我们可以使用 [] 运算符来选择行和列。
# 选择一列
df['col1']
# 选择多列
df[['col1', 'col2']]
# 选择行
df.loc[0]
# 选择多行
df.loc[0:2]
# 选择行和列
df.loc[0:2, ['col1', 'col2']]
在 Pandas 中,我们可以使用条件筛选数据。
# 筛选一列
df[df['col1'] > 0]
# 筛选多列
df[(df['col1'] > 0) & (df['col2'] < 10)]
在实际的数据中,经常会存在缺失值,需要进行处理。Pandas 提供了多种方法来处理缺失值。
删除缺失值
删除包含有缺失值的行或列。
# 删除包含有缺失值的行
df.dropna()
# 删除包含有缺失值的列
df.dropna(axis=1)
填充缺失值
通过不同的方法填充缺失值。
# 用 0 填充缺失值
df.fillna(0)
# 用平均值填充缺失值
df.fillna(df.mean())
在数据预处理期间,也需要进行数据类型转换。
转换为数值类型
将字符串类型的数据转换为数值类型。
# 将 'col1' 列的数据类型转换为数值类型
df['col1'] = pd.to_numeric(df['col1'])
转换为日期类型
将字符串类型的日期数据转换为日期类型。
# 将 'date' 列的数据类型转换为日期类型
df['date'] = pd.to_datetime(df['date'])
在实际数据中,也会存在重复记录的情况。
删除重复记录
删除重复的记录。
# 删除重复记录
df.drop_duplicates()
合并重复记录
合并重复的记录。
# 按照 'id' 列进行分组,并对其他列求和
df.groupby('id').sum()
本文介绍了 Python 数据预处理的基本方法,包括 Pandas 库的使用、缺失值处理、数据类型转换和数据重复处理等操作。希望本文对您有所帮助!