Python_AI库 Pandas库介绍
本文默认读者具备以下技能:
- 熟悉python基础知识,vscode或其它编辑工具
- 熟悉表格文件的基本操作
- 具备自主扩展学习能力
在之前的文章中我们对matplotlib与Numpy的基本内容作了介绍,今天我们来看一个十分重要的库pandas。无论我们的程序是否属于AI程序,pandas都是在工作中最常用到的库之一,在日常应用环境中扮演十分重要的角色,也是这个系列文章的一个重点。Pandas是Python中一个用于数据处理和分析的强大库。它提供了高效、灵活且富有表现力的数据结构,使得数据清洗、转换、分析和可视化变得简单而高效。
值得一提的是,Pandas与NumPy库有着紧密的联系,两者在数据处理和分析领域各自扮演着重要的角色。
Pandas与NumPy的关系
NumPy是Python中用于处理大型多维数组和矩阵运算的基础库。它提供了大量的数学函数来对数组进行运算,是数据处理和分析的基石。
Pandas是建立在NumPy的基础上,并进行了功能上的扩展和增强。Pandas的DataFrame和Series数据结构底层是基于NumPy的ndarray实现的,因此Pandas能够继承NumPy的高效性能。同时,Pandas还提供了比NumPy更高级的数据结构和操作函数,如数据筛选、分组聚合、时间序列处理等,这使得Pandas在数据处理和分析方面更加便捷和直观。
事实上,至少在我的工作中,pandas的使用频率要高于numpy,Pandas也确实能够胜任numpy的大部分工作,只是在处理纯数值类型且对效率要求较高的情况下会优选Numpy。因此,关于Python_AI库中的数据分析相关的库,重点会放到pandas上面。
Pandas的基本功能介绍
Pandas提供了丰富的数据操作功能,以下是其中一些常用操作的简单介绍:
- 数据读取与写入:Pandas支持多种文件格式的数据读取和写入,如CSV、Excel、SQL等,方便用户从各种数据源中导入和导出数据。
- 数据筛选:通过布尔索引、条件表达式等方式,可以方便地筛选出满足特定条件的数据行或列。
- 数据排序:Pandas提供了对数据按照某列或多列进行排序的功能,包括升序和降序排序。
- 数据分组与聚合:通过groupby函数,可以将数据按照某列或多列进行分组,并对每个组执行聚合操作,如求和、平均值等。
- 缺失数据处理:Pandas提供了对缺失数据(NaN)的检测、填充和删除等功能,帮助用户有效处理数据中的不完整部分。
- 时间序列分析:Pandas内置了强大的时间序列处理功能,支持日期时间的解析、转换和计算等操作。
Pandas与AI关系实例
在机器学习的项目中,特征工程是一个关键步骤。假设我们有一个用户购买记录的数据集,我们想要通过Pandas来预处理这些数据,并提取出对机器学习模型有用的特征。以下是一个简单的代码示例,展示了如何使用Pandas来完成这个任务:
首先,我们需要导入Pandas库并加载数据:
import pandas as pd
# 假设我们有一个CSV文件,包含了用户的购买记录
data = pd.read_csv('user_purchases.csv')
然后,我们可以使用Pandas进行数据清洗和转换,提取出有用的特征:
# 查看前几行数据,确保数据加载正确
print(data.head())
# 假设数据中包含以下列:'user_id', 'purchase_date', 'product_category', 'quantity'
# 将购买日期转换为Pandas的日期时间格式
data['purchase_date'] = pd.to_datetime(data['purchase_date'])
# 提取年份和月份作为新的特征
data['purchase_year'] = data['purchase_date'].dt.year
data['purchase_month'] = data['purchase_date'].dt.month
# 计算每个用户的购买总次数
user_purchases_count = data.groupby('user_id')['purchase_date'].count().reset_index(name='total_purchases')
# 计算每个用户的购买总额(假设有'price'这一列代表商品价格)
user_total_spent = data.groupby('user_id')[['quantity', 'price']].apply(lambda x: (x['quantity'] * x['price']).sum()).reset_index(name='total_spent')
# 将计算出的特征合并回原数据集中
data = pd.merge(data, user_purchases_count, on='user_id', how='left')
data = pd.merge(data, user_total_spent, on='user_id', how='left')
# 展示包含新特征的数据集
print(data.head())
上述代码示例中,我们使用了Pandas的数据读取、数据类型转换、分组聚合以及数据合并等功能,来提取出每个用户的购买总次数和购买总额等特征。这些特征可以作为机器学习模型的输入,用于预测用户的购买行为或其他相关任务。
通过这个实例,我想要说明的是Pandas与AI有着十分紧密的联系。以后的文章中我也们多次提到相关的内容。