当前位置: 首页 > news >正文

【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)

📚 Pandas 系列文章导航

  • 入门篇 🌱
  • 进阶篇 🚀
  • 终极篇 🌌

📌 一、引言

在大数据与 AI 驱动的时代,数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库,以其灵活的数据结构(如 DataFrame 和 Series)和丰富的功能(数据清洗、转换、聚合等),成为数据科学家和工程师的核心工具。

Pandas 以 Series(一维标签数组)和 DataFrame(二维表格)为核心数据结构,提供高效的数据处理能力,涵盖数据清洗(缺失值处理、去重)、筛选(loc/iloc)、聚合(groupby)、合并(merge/concat)及时间序列分析(日期解析、重采样)等关键功能。其优势在于:

  • 矢量化运算:避免循环,提升性能。
  • 内存优化category 类型减少内存占用。
  • 无缝集成生态:与 NumPy、Matplotlib 等库无缝集成。

Pandas数据处理全流程:

数据加载
CSV/Excel/SQL
数据清洗
去重/填充/异常值
数据转换
类型转换/特征工程
数据聚合
Groupby/Agg
数据合并
Concat/Merge
数据分析
统计/可视化
结果输出
CSV/图表/报告

入门需掌握基础 API(如 read_csvdescribe),并通过实战(如电商分析、时序预测)深化理解。官方文档与《Python for Data Analysis》是经典学习资源,适合快速处理结构化数据并赋能 AI 工程。


🛠️ 二、安装指南

1. 前置条件

  • Python 版本要求:Pandas 建议 Python 3.8 及以上版本。
  • 推荐环境:使用虚拟环境(如 venvconda)隔离项目依赖。

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 表格或数据库查询结果。
核心数据结构关系
多个组合
列操作
行操作
索引对齐
可视化
机器学习
Series
DataFrame
Series
Series
NumPy数组
Matplotlib
Scikit-learn

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 的组,建议提前处理。
⚠️ 避免在分组后直接修改数据,应使用 transformapply

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) 保持顺序。
  • 数据合并方法选择:
Yes
No
Yes
No
需要合并数据
相同结构?
concat 轴向拼接
有连接键?
merge 键连接
join 索引对齐
输出合并结果
(3)避坑指南

⚠️ 多对多连接会产生笛卡尔积,导致数据量爆炸式增长。
⚠️ 合并后出现大量 NaN 值时,检查连接键的数据类型是否一致。

6. 效率优化锦囊

  1. 类型转换:将字符串列转为 category 类型可降内存 80%。
    df["gender"] = df["gender"].astype("category")
    
  2. 矢量化运算:用 df["col1"] + df["col2"] 替代循环。
  3. 查询优化:大数据集使用 df.query("price > 100") 比布尔索引更快。

🌟 五、总结说明

Pandas 的核心价值在于将复杂的数据操作简化为高效、可读的代码。通过本文,读者可掌握:

  • 核心数据结构:Series 和 DataFrame 的使用方法。
  • 数据处理能力:清洗、筛选、聚合、合并等关键操作。
  • 性能优化技巧:类型转换、矢量化运算、查询优化。
  • 实战应用:结合真实数据集进行实战演练。

🚀 六、结语

本章完成了 Pandas 入门知识的核心讲解。下篇将深入探讨进阶主题,包括高级数据处理技巧、性能调优、以及在深度学习中的应用。敬请期待!


相关文章:

【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)

&#x1f4da; Pandas 系列文章导航 入门篇 &#x1f331;进阶篇 &#x1f680;终极篇 &#x1f30c; &#x1f4cc; 一、引言 在大数据与 AI 驱动的时代&#xff0c;数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库&#xff0c;以…...

关于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指南 【基础篇】大模型的演变与概念 大模型的演变 人工智能&#xff1a;人工智能是一个广泛涉及计算机科学、数据分析、统计学、机器工程、语言学、神 经科学、哲学和心理学等多个学科的领域。 机器学习&#xff1a;机器学习可以分为监督学习&…...

从零到一:快速上手 Poetry——Python 项目管理的利器

在 Python 项目开发中&#xff0c;包管理、依赖管理和虚拟环境的创建一直是开发者们经常面对的难题。传统上&#xff0c;开发者通常会使用 pip、virtualenv 或者 conda 来处理这些问题。然而&#xff0c;随着 Python 项目复杂度的增加&#xff0c;传统工具往往显得力不从心&…...

【量化科普】Beta,贝塔系数

【量化科普】Beta&#xff0c;贝塔系数 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在量化投资领域&#xff0c;Beta&#xff08;贝塔系数&#xff09;是一个衡量投资组合或股票相对于整个市场波动性的指标。它反映了资产收益与市场收益之间的相关性&#xff0c;…...

C++----异常

一、C 语言传统的错误处理方式 在 C 语言中&#xff0c;处理错误主要有两种传统方式&#xff0c;每种方式都有其特点和局限性。 1. 终止程序 原理&#xff1a;使用类似assert这样的断言机制&#xff0c;当程序运行到某个条件不满足时&#xff0c;直接终止程序的执行。示例代…...

合理规划时间,从容应对水利水电安全员考试

合理规划时间&#xff0c;从容应对水利水电安全员考试 在忙碌的工作与生活节奏中备考水利水电安全员考试&#xff0c;合理规划时间是实现高效备考的核心。科学的时间管理能让你充分利用每一分每一秒&#xff0c;稳步迈向考试成功。 制定详细的学习计划是第一步。依据考试时间…...

(解决) 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双击后&#xff0c;电脑风扇会运行一段时间后再停止&#xff08;应该是在保存进程到硬盘&#…...

Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解

一、针对特定接口null的处理&#xff1a; 方法一&#xff1a;使用 JsonInclude 注解 1.1 类级别&#xff1a;在接口返回的 ‌DTO 类或字段‌ 上添加 JsonInclude 注解&#xff0c;强制忽略 null 值&#xff1a; 类级别&#xff1a;所有字段为 null 时不返回 JsonInclude(Js…...

计算机毕业设计Python+DeepSeek-R1大模型考研院校推荐系统 考研分数线预测 考研推荐系统 考研(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

一、Prometheus架构

Prometheus 云原生十二要素是一套最佳实践和规范,旨在帮助开发人员更好地构建云原生应用 这十二个要素分别是: 单一职责独立部署无状态声明式API服务发现容错处理自适应算法自动化运维响应式编程通信协议服务注册与发现数据持久化一、Prometheus 是什么 Prometheus 是一个…...

火山引擎 DeepSeek R1 API 使用小白教程

一、火山引擎 DeepSeek R1 API 申请 首先需要三个要素&#xff1a; 1&#xff09;API Key 2&#xff09;API 地址 3&#xff09;模型ID 1、首先打开火山引擎的 DeepSeek R1 模型页面 地址&#xff1a;账号登录-火山引擎 2、在页面右下角&#xff0c;找到【推理】按钮&#…...

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 经纬网添加全解析:从布局到样式优化

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

新闻研究导刊杂志社《新闻研究导刊》编辑部2024年第23期目录

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

DDoS攻击的介绍和防治

一.DDoS攻击是什么 DDoS攻击&#xff1a;dos是服务器拒绝提供服务的意思&#xff0c;最前面的D是分布式的意思&#xff0c;所以说这个大概可以理解为分布式的机器攻击服务器&#xff0c;占用服务器资源&#xff0c;使得服务器拒绝提供服务的一种攻击手段&#xff0c;虽然原理简…...

UDP透传程序

UDP透传程序 本脚本用于在 设备 A 和 设备 B 之间建立 UDP 数据转发桥梁&#xff0c;适用于 A 和 B 设备无法直接通信的情况。 流程&#xff1a; A --> 电脑 (中继) --> B B --> 电脑 (中继) --> A 需要修改参数&#xff1a; B_IP “192.168.1.123” # 设备 B 的…...

深度学习pytorch之简单方法自定义9种卷积即插即用

本文详细解析了 PyTorch 中 torch.nn.Conv2d 的核心参数&#xff0c;通过代码示例演示了如何利用这一基础函数实现多种卷积操作。涵盖的卷积类型包括&#xff1a;标准卷积、逐点卷积&#xff08;1x1 卷积&#xff09;、非对称卷积&#xff08;长宽不等的卷积核&#xff09;、空…...

TMS320F28P550SJ9学习笔记2:Sysconfig 配置与点亮LED

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

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...