【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)
📚 Pandas
系列文章导航
- 入门篇 🌱
- 进阶篇 🚀
- 终极篇 🌌
📌 一、引言
在大数据与 AI 驱动的时代,数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库,以其灵活的数据结构(如 DataFrame 和 Series)和丰富的功能(数据清洗、转换、聚合等),成为数据科学家和工程师的核心工具。
Pandas 以 Series(一维标签数组)和 DataFrame(二维表格)为核心数据结构,提供高效的数据处理能力,涵盖数据清洗(缺失值处理、去重)、筛选(loc/iloc
)、聚合(groupby
)、合并(merge/concat
)及时间序列分析(日期解析、重采样)等关键功能。其优势在于:
- 矢量化运算:避免循环,提升性能。
- 内存优化:
category
类型减少内存占用。 - 无缝集成生态:与 NumPy、Matplotlib 等库无缝集成。
Pandas数据处理全流程:
入门需掌握基础 API(如 read_csv
、describe
),并通过实战(如电商分析、时序预测)深化理解。官方文档与《Python for Data Analysis》是经典学习资源,适合快速处理结构化数据并赋能 AI 工程。
🛠️ 二、安装指南
1. 前置条件
- Python 版本要求:Pandas 建议 Python 3.8 及以上版本。
- 推荐环境:使用虚拟环境(如
venv
或conda
)隔离项目依赖。
2. 安装方法
2.1 使用 pip 安装(通用方式)
# 基础安装(仅 Pandas)
pip install pandas# 国内镜像加速(解决下载慢问题)
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2 使用 Anaconda 安装(推荐数据科学用户)
# 通过 conda 安装(自动处理依赖)
conda install pandas# 或指定版本
conda install pandas=2.2.0
2.3 源码安装(高级用户)
git clone https://github.com/pandas-dev/pandas.git
cd pandas
python setup.py install
3. 验证安装
import pandas as pd
print(pd.__version__) # 输出版本号(如 2.2.0)
4. 常见问题解决
- 依赖冲突:使用
pip install --upgrade pandas
升级至最新版本。 - 权限问题:在命令前添加
sudo
(Linux/macOS)或以管理员身份运行终端(Windows)。 - 缺少依赖库:安装完整数据科学生态(推荐):
pip install pandas numpy matplotlib scikit-learn
5. 环境配置建议
- IDE 支持:在 Pycharm 或 VS Code 中运行代码更高效。
- 文档速查:本地查看文档(终端输入
python -m pandas
或访问 官网文档)。
📊 三、知识详解
1. 核心数据结构
1.1 Series
- 一维带标签数组,支持任意数据类型,索引机制允许快速定位数据(如
pd.Series([10,20], index=['a','b'])
)。 - 常用于存储时间序列、数值序列或分类数据。
1.2 DataFrame
- 二维表格型结构,由多个 Series 组成,支持异构数据类型(如数字、字符串、日期并存)。
- 提供类似 SQL 的操作接口(筛选、合并、分组聚合),适合处理 Excel 表格或数据库查询结果。
核心数据结构关系
2. 核心功能与优势
2.1 数据处理能力
- 数据清洗:通过
dropna()
删除缺失值、fillna()
填充、drop_duplicates()
去重,快速修复脏数据。 - 数据操作:
- 筛选:
loc
(标签索引)、iloc
(位置索引)、query()
(SQL 式条件过滤)。 - 合并:
merge()
实现表连接、concat()
轴向拼接。 - 分组聚合:
groupby()
结合agg()
计算多维度统计量(如均值、总和)。
- 筛选:
2.2 时间序列处理
- 内置时间解析(
pd.to_datetime()
)、重采样(resample()
)、滚动窗口计算,适用于金融分析或物联网数据。
2.3 可视化与集成
- 与 Matplotlib 无缝衔接,直接通过
df.plot()
生成柱状图、折线图等。 - 兼容 NumPy、Scikit-learn 等库,支持数据预处理到模型训练的全流程。
2.4 性能优化
- 向量化运算:底层基于 C 语言加速,避免 Python 循环的低效问题(如
df * 2
比循环快千倍)。 - 内存优化:使用
category
类型减少字符串存储空间,eval()
提升表达式计算效率。
💡 四、工程实践
1. 数据结构基石:Series 与 DataFrame
(1)代码示例
# 创建 Series
import pandas as pd
price_series = pd.Series([9.9, 15.8, 4.5], name="商品价格", index=["苹果", "牛奶", "面包"])# 创建 DataFrame
product_df = pd.DataFrame({"品类": ["水果", "乳制品", "烘焙"],"库存量": [50, 20, 35],"单价": [9.9, 15.8, 4.5]
}, index=["苹果", "牛奶", "面包"])
(2)核心要点
- Series 本质:带标签的一维数组,索引与值一一对应。
- DataFrame 核心:二维表格结构,可视为多个 Series 的列集合。
- 索引对齐特性是 Pandas 高效运算的基础逻辑。
(3)避坑指南
⚠️ 避免直接修改 df.values
数组,这会破坏索引对齐机制。
⚠️ 创建 DataFrame 时,字典值的长度必须一致,否则会触发 ValueError
。
2. 数据加载与初步探索
(1)代码示例
# 从 CSV 读取数据(自动识别日期)
sales_data = pd.read_csv("sales.csv", parse_dates=["order_date"])# 数据预览技巧
print(sales_data.head(3)) # 查看前三行
print(sales_data.describe()) # 数值列统计摘要
print(sales_data.dtypes) # 查看列数据类型
(2)核心要点
- 支持 CSV/Excel/SQL 等 15+ 数据源读取。
parse_dates
参数可将字符串自动转为 datetime 类型。head()
+describe()
组合快速掌握数据分布特征。
(3)避坑指南
⚠️ 读取 Excel 时需额外安装 openpyxl
库:pip install openpyxl
。
⚠️ 大数据文件使用 chunksize
分块读取:
for chunk in pd.read_csv("big_data.csv", chunksize=10000):process(chunk)
3. 数据清洗黄金法则
(1)代码示例
# 处理缺失值
sales_clean = sales_data.dropna(subset=["price"]) # 删除 price 列缺失行
sales_data["price"].fillna(sales_data["price"].median(), inplace=True)# IQR 法处理异常值
Q1 = sales_data["sales"].quantile(0.25)
Q3 = sales_data["sales"].quantile(0.75)
sales_data = sales_data[~((sales_data["sales"] < (Q1-1.5*(Q3-Q1))) | (sales_data["sales"] > (Q3+1.5*(Q3-Q1))))]
(2)核心要点
- 缺失值处理三板斧:删除 (
dropna
)、填充 (fillna
)、插值 (interpolate
)。 - 异常值检测推荐使用 IQR(四分位距法)或 3σ 原则。
- 数据转换时优先使用
inplace=True
减少内存占用。
(3)避坑指南
⚠️ fillna(method="ffill")
向前填充时,需先按时间排序避免逻辑错误。
⚠️ 删除缺失值前务必检查 df.isna().sum()
,避免误删有效数据。
4. 数据聚合与分组魔法
(1)经典代码示例
# 单维度聚合
category_sales = sales_data.groupby("category")["sales"].sum()# 多维度高级聚合
sales_stats = sales_data.groupby(["region", "year"]).agg(total_sales=("sales", "sum"),avg_price=("price", "mean"),max_quantity=("quantity", "max")
)
(2)核心要点
groupby
本质是 “拆分-应用-合并” 三阶段操作。- 聚合函数推荐具名聚合(
agg
+ 元组)提升可读性。 - 搭配
pd.cut
进行分箱分析可挖掘深层规律。
(3)避坑指南
⚠️ 分组键包含 NaN 时会自动创建名为 NaN
的组,建议提前处理。
⚠️ 避免在分组后直接修改数据,应使用 transform
或 apply
。
5. 数据合并高阶技巧
(1)代码示例
# 横向拼接(列扩展)
combined = pd.concat([df1, df2], axis=1)# 数据库风格连接
merged_data = pd.merge(orders, customers, how="left", left_on="customer_id", right_on="id")# 索引对齐合并
joined_df = df1.join(df2, how="inner")
(2)核心要点
concat
适合简单堆叠,merge
适合键关联合并。- 合并前务必检查键列唯一性:
df.duplicated().sum()
。 - 多表连接推荐使用
pd.merge(ordered=True)
保持顺序。 - 数据合并方法选择:
(3)避坑指南
⚠️ 多对多连接会产生笛卡尔积,导致数据量爆炸式增长。
⚠️ 合并后出现大量 NaN 值时,检查连接键的数据类型是否一致。
6. 效率优化锦囊
- 类型转换:将字符串列转为
category
类型可降内存 80%。df["gender"] = df["gender"].astype("category")
- 矢量化运算:用
df["col1"] + df["col2"]
替代循环。 - 查询优化:大数据集使用
df.query("price > 100")
比布尔索引更快。
🌟 五、总结说明
Pandas 的核心价值在于将复杂的数据操作简化为高效、可读的代码。通过本文,读者可掌握:
- 核心数据结构:Series 和 DataFrame 的使用方法。
- 数据处理能力:清洗、筛选、聚合、合并等关键操作。
- 性能优化技巧:类型转换、矢量化运算、查询优化。
- 实战应用:结合真实数据集进行实战演练。
🚀 六、结语
本章完成了 Pandas 入门知识的核心讲解。下篇将深入探讨进阶主题,包括高级数据处理技巧、性能调优、以及在深度学习中的应用。敬请期待!
相关文章:
【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)
📚 Pandas 系列文章导航 入门篇 🌱进阶篇 🚀终极篇 🌌 📌 一、引言 在大数据与 AI 驱动的时代,数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库,以…...
关于opencv中solvepnp中UPNP与DLS与EPNP的参数
The methods SOLVEPNP_DLS and SOLVEPNP_UPNP cannot be used as the current implementations are unstable and sometimes give completely wrong results. If you pass one of these two flags, SOLVEPNP_EPNP method will be used instead.、 由于当前的实现不稳定&#x…...

金融项目实战
测试流程 测试流程 功能测试流程 功能测试流程 需求评审制定测试计划编写测试用例和评审用例执行缺陷管理测试报告 接口测试流程 接口测试流程 需求评审制定测试计划分析api文档编写测试用例搭建测试环境编写脚本执行脚本缺陷管理测试报告 测试步骤 测试步骤 需求评审 需求评…...

大模型小白入门
【课前篇】大模型从0到1指南 【基础篇】大模型的演变与概念 大模型的演变 人工智能:人工智能是一个广泛涉及计算机科学、数据分析、统计学、机器工程、语言学、神 经科学、哲学和心理学等多个学科的领域。 机器学习:机器学习可以分为监督学习&…...
从零到一:快速上手 Poetry——Python 项目管理的利器
在 Python 项目开发中,包管理、依赖管理和虚拟环境的创建一直是开发者们经常面对的难题。传统上,开发者通常会使用 pip、virtualenv 或者 conda 来处理这些问题。然而,随着 Python 项目复杂度的增加,传统工具往往显得力不从心&…...
【量化科普】Beta,贝塔系数
【量化科普】Beta,贝塔系数 🚀量化软件开通 🚀量化实战教程 在量化投资领域,Beta(贝塔系数)是一个衡量投资组合或股票相对于整个市场波动性的指标。它反映了资产收益与市场收益之间的相关性,…...

C++----异常
一、C 语言传统的错误处理方式 在 C 语言中,处理错误主要有两种传统方式,每种方式都有其特点和局限性。 1. 终止程序 原理:使用类似assert这样的断言机制,当程序运行到某个条件不满足时,直接终止程序的执行。示例代…...
合理规划时间,从容应对水利水电安全员考试
合理规划时间,从容应对水利水电安全员考试 在忙碌的工作与生活节奏中备考水利水电安全员考试,合理规划时间是实现高效备考的核心。科学的时间管理能让你充分利用每一分每一秒,稳步迈向考试成功。 制定详细的学习计划是第一步。依据考试时间…...
(解决) Windows 11使用SetSuspendState睡眠命令但是进入的是休眠
Windows 11 24H2 goes into hibernation mode instead of sleep mode. How can I create a sleep mode shortcut file? 25年3月4号 Win11 23H2 起因 使用网上说的睡眠命令创建bat双击后,电脑风扇会运行一段时间后再停止(应该是在保存进程到硬盘&#…...
Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解
一、针对特定接口null的处理: 方法一:使用 JsonInclude 注解 1.1 类级别:在接口返回的 DTO 类或字段 上添加 JsonInclude 注解,强制忽略 null 值: 类级别:所有字段为 null 时不返回 JsonInclude(Js…...

计算机毕业设计Python+DeepSeek-R1大模型考研院校推荐系统 考研分数线预测 考研推荐系统 考研(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
一、Prometheus架构
Prometheus 云原生十二要素是一套最佳实践和规范,旨在帮助开发人员更好地构建云原生应用 这十二个要素分别是: 单一职责独立部署无状态声明式API服务发现容错处理自适应算法自动化运维响应式编程通信协议服务注册与发现数据持久化一、Prometheus 是什么 Prometheus 是一个…...

火山引擎 DeepSeek R1 API 使用小白教程
一、火山引擎 DeepSeek R1 API 申请 首先需要三个要素: 1)API Key 2)API 地址 3)模型ID 1、首先打开火山引擎的 DeepSeek R1 模型页面 地址:账号登录-火山引擎 2、在页面右下角,找到【推理】按钮&#…...
react+vite+pnpm+ts基础项目搭建
1. 项目初始化 pnpm create vitelatest my-react-app --template react-ts cd my-react-app pnpm install2. 核心依赖安装 # 基础依赖 pnpm add react-router-dom tanstack/react-query zustand axios# UI 组件库 (任选其一) pnpm add mui/material emotion/react emotion/st…...

ArcGIS Pro 经纬网添加全解析:从布局到样式优化
在地理信息系统的广阔领域中,地图的精确性与直观性对于数据的呈现和分析起着至关重要的作用。 经纬网,作为地图上不可或缺的元素之一,能够为用户提供准确的地理坐标参考,帮助用户快速定位和理解地理空间数据的分布。 本文将深入…...

新闻研究导刊杂志社《新闻研究导刊》编辑部2024年第23期目录
研究论文 媒介智能化环境下新闻传播面临的风险及应对策略研究 冶玉娜; AI赋能地方政务新媒体智能化转型策略研究——以佛山政务新媒体为例 温秀妍; 新闻传播在社交媒体影响下的流变与发展展望 李晋; 县级融媒体中心生产优质短视频的路径探索 陈政清; 数字游…...

DDoS攻击的介绍和防治
一.DDoS攻击是什么 DDoS攻击:dos是服务器拒绝提供服务的意思,最前面的D是分布式的意思,所以说这个大概可以理解为分布式的机器攻击服务器,占用服务器资源,使得服务器拒绝提供服务的一种攻击手段,虽然原理简…...
UDP透传程序
UDP透传程序 本脚本用于在 设备 A 和 设备 B 之间建立 UDP 数据转发桥梁,适用于 A 和 B 设备无法直接通信的情况。 流程: A --> 电脑 (中继) --> B B --> 电脑 (中继) --> A 需要修改参数: B_IP “192.168.1.123” # 设备 B 的…...
深度学习pytorch之简单方法自定义9种卷积即插即用
本文详细解析了 PyTorch 中 torch.nn.Conv2d 的核心参数,通过代码示例演示了如何利用这一基础函数实现多种卷积操作。涵盖的卷积类型包括:标准卷积、逐点卷积(1x1 卷积)、非对称卷积(长宽不等的卷积核)、空…...

TMS320F28P550SJ9学习笔记2:Sysconfig 配置与点亮LED
今日学习使用Sysconfig 对引脚进行配置,并点亮开发板上的LED4 与LED5 我的单片机开发板平台是 LAUNCHXL_F28P55x 我是在上文描述的驱动库C2000ware官方例程example的工程基础之上进行添加功能的 该例程路径如下:D:\C2000Ware_5_04_00_00\driverlib\f28p…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
Spring事务传播机制有哪些?
导语: Spring事务传播机制是后端面试中的必考知识点,特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发,全面剖析Spring事务传播机制,帮助你答得有…...
比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表
设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...