匠人学院 JR Academy学AI来匠人
匠人学院 JR Academy学AI来匠人

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png
EN

关于公司

关于我们元宇宙课堂新闻资讯匠人工作成为导师匠人导师联系我们匠人商店J3.Club

匠人资源

工作内推匠人活动1对1私教行业白皮书线上学习平台面试中心分享面试经验Internship会员中心

AI 工具

AI 工具箱考证匠 Cert Master求职匠 Job Hunter牛小匠 UniMate AI

AI 学习方向

全部学习方向AI EngineerContext EngineeringVibe CodingPrompt MasterAI BuilderAI 产品经理Python 入门

AI 应用提效

AI 办公提效AI 数据分析AI 财务AI 内容创作AI 视觉创作前端开发Hermes AgentOpenClaw 本地智能体

大学资源

墨尔本大学昆士兰大学新南威尔士大学悉尼大学莫那什大学阿德莱德大学RMITQUTUTS

少儿 AI 教育

Airbotix 少儿 AI 编程澳洲家长实用资料库NAPLAN 成绩单怎么看My School 学校数据指南悉尼私校学费 2026少儿编程课程与训练营

移民服务

澳洲移民技术移民189/190/491雇主担保482/186/494投资移民188/888英国移民美国移民加拿大移民

企业合作

P3职业孵化器Enterprise (EN)企业培训实习合作招聘合作申请合作

求职代理

岗位代投职位监控LinkedIn代运营LinkedIn人脉代加了解P3项目

匠人支持

FAQsTerms & ConditionsPrivacy PolicyCancellation & Refund PolicySite map

Top Categories

Web全栈班DevOps项目班数据工程全栈班数据分析项目班编程入门班Business Analyst实习算法集训营

求职就业

BA和产品经理实习数据科学实习数据分析实习Marketing实习简历修改面试指导导师指导VIP

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

联系方式

hello@jiangren.com.au0421-672-555

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2026 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572

Pandas 数据分析指南
AI Engineer
Pandas 数据分析指南

Pandas 是 Python 最流行的数据分析库,提供强大的 DataFrame 数据结构和数据操作能力。

官方文档↗PyPI↗
Pandas 数据分析指南Pandas 简介
Pandas 数据分析指南

Pandas 数据分析指南

审核者
Lightman Wang
Lightman Wang
Founder of JR Academy

快速入门

  • Pandas 简介

相关链接

  • ↗官方文档
  • ↗PyPI
WikiPandas 数据分析指南

Pandas:数据分析绕不开的第一把刀

说实话,学 Python 做数据相关的事情,不管你最终走数据分析、数据科学还是后端 ETL,Pandas 都是你第一个要过的关。不是因为它最好,而是因为它太普遍了——StackOverflow 上 90% 的数据处理回答都是 Pandas 代码,ChatGPT 和 Claude 默认生成的也是 Pandas。你不学它,等于切断了自己最大的求助渠道。

但 Pandas 也不是没毛病。数据量一大就慢,API 设计有些地方让人想摔键盘,链式操作写多了自己都看不懂。这篇不是官方文档翻译,而是从"实际干活"的角度,帮你搞清楚 Pandas 到底怎么用、什么时候该用、什么时候该跑。


#先说结论

我在 JR Academy 教学生的时候发现,大家最常问的就是"我到底该不该学 Pandas"——答案取决于你的场景,所以我直接给结论:

  • 数据量 < 1GB,用 Pandas,没什么好犹豫的
  • 数据量 1-10GB,先试 Pandas,不行换 Polars 或 DuckDB
  • 数据量 > 10GB,别挣扎了,上 PySpark 或 DuckDB
  • 如果你只需要跑几条 SQL 查询,Pandas 都不需要,直接写 SQL
  • 如果你的工作是 Excel 里点来点去,Pandas 能把你的效率提升 10 倍,但前提是你愿意花两周学基础

Pandas 的核心价值不是"快",而是"什么都能干"——读 CSV、连数据库、清洗脏数据、做透视表、画图、导出 Excel,一条龙。这个"瑞士军刀"属性,短期内没有替代品。


#这几个概念你得先搞明白

#DataFrame:一张 Excel 表

DataFrame 结构示意图
DataFrame 结构示意图

DataFrame 就是一张表,有行有列。你可以把它想象成一张 Excel 工作表,但它活在 Python 里,能用代码操作。

python
import pandas as pd df = pd.read_csv('sales.csv') df.head() # 看前 5 行,相当于打开 Excel 先扫一眼

#Series:Excel 里的一列

Series 就是 DataFrame 里面单独拿出来的一列。比如你有一张销售表,把"金额"这列单独拿出来,就是一个 Series。

python
revenue = df['revenue'] # 拿出 revenue 这列 revenue.mean() # 算平均值

#Index:每行的门牌号

Index 就是每一行的标签。默认是 0, 1, 2, 3... 但你也可以把某列设成 Index,比如用日期做行标签,方便按时间切片。

怎么理解呢?你住的小区,每栋楼有门牌号,靠门牌号才能找到具体是哪家。Index 在 DataFrame 里就是这个作用。

#GroupBy:分组统计的核心

GroupBy 就是 SQL 里的 GROUP BY。比如你有一张订单表,想按城市算总销售额:

python
df.groupby('city')['revenue'].sum()

这个其实不难理解——班主任期末把学生按性别分两拨,分别算平均分。先分组,再计算,GroupBy 干的就是这事。

#merge / join:把两张表拼起来

这就是 SQL 的 JOIN。比如你有一张订单表和一张客户表,想把客户名字加到订单表里:

python
result = pd.merge(orders, customers, on='customer_id', how='left')

想象你手里有一本通讯录、一本快递单,快递单上只有名字没有电话。你对着通讯录把电话号码一个个抄到快递单上——merge 做的就是这个动作,只不过它一秒钟能抄几百万行。


#真实使用场景

讲完概念来看看实际干活的时候 Pandas 都在哪些地方出场。下面几个场景我自己或者身边同事都经历过,不是编的。

#清洗脏数据——Pandas 吃饭的活

这是 Pandas 最高频的用途,没有之一。说个真事,我之前帮一个客户处理他们从 CRM 导出的客户数据,里面的电话号码格式五花八门——有带空格的、带括号的、带加号的、还有填了"N/A"的。当时看到那个 CSV 我人都麻了。

python
df = pd.read_csv('customers.csv') # 先看看有多少空值 df.isnull().sum() # 电话号码:去空格、去括号,空的填 NaN df['phone'] = df['phone'].str.replace(r'[\s\(\)\-]', '', regex=True) df['phone'] = df['phone'].replace(['N/A', 'NA', ''], pd.NA) # 去重:同一个邮箱只保留最新的一条 df = df.sort_values('created_at', ascending=False) df = df.drop_duplicates(subset='email', keep='first')

这种活你用 Excel 也能干,但如果数据有 10 万行,Excel 卡死你,Pandas 几秒搞定。

#自动生成月度报表

我见过太多公司的报表流程是这样的:从数据库导 CSV → 打开 Excel → 手动做透视表 → 截图发群。每个月重复一次,每次花半天。老实说,这种重复劳动看着就心疼。

用 Pandas 写成脚本,一次写好,每月跑一次就行:

python
df = pd.read_sql('SELECT * FROM orders WHERE month = %s', conn, params=[current_month]) # 按产品分类汇总 summary = df.groupby('product_category').agg( total_revenue=('revenue', 'sum'), order_count=('order_id', 'count'), avg_order_value=('revenue', 'mean') ).round(2) # 导出 Excel,自带格式 summary.to_excel('monthly_report.xlsx', sheet_name='Summary')

#给机器学习做特征工程

做 ML 的同学应该深有体会——80% 的时间其实都在处理数据,真正训练模型的代码可能就几行。Pandas 在数据准备这个环节几乎不可替代:

python
# 时间特征 df['order_hour'] = pd.to_datetime(df['order_time']).dt.hour df['is_weekend'] = pd.to_datetime(df['order_time']).dt.dayofweek >= 5 # 编码分类变量 df = pd.get_dummies(df, columns=['city', 'product_type']) # 处理缺失值 df['age'].fillna(df['age'].median(), inplace=True)

#Pandas 最容易翻车的地方

这部分是实战里攒下来的教训,每条都有人踩过。

问题症状原因最省力的修法
SettingWithCopyWarning一堆黄色警告对切片后的 DataFrame 赋值用 .loc[] 或 .copy()
内存爆了进程被 kill数据太大,Pandas 全部加载到内存用 dtype 指定类型,或分块读取 chunksize
merge 之后行数暴增合并后行数比原来多好几倍有重复 key,变成了笛卡尔积合并前先 drop_duplicates
日期解析出错时间列变成字符串CSV 里日期格式不统一读取时指定 parse_dates + dayfirst
apply 太慢简单操作跑了几分钟用了 apply 而不是向量化操作改用内置方法或 np.where
inplace 陷阱改了但好像没改inplace=True 和链式操作冲突别用 inplace,直接赋值

关于 SettingWithCopyWarning 多说一句:这是新手最困惑的警告。简单规则——只要你是从 DataFrame 切出来的子集,想修改它之前先 .copy() 一下,问题就没了。

python
# ❌ 会报警告 subset = df[df['age'] > 30] subset['tag'] = 'senior' # ✅ 安全写法 subset = df[df['age'] > 30].copy() subset['tag'] = 'senior'

#AI 时代的 Pandas

说实话,AI 让 Pandas 变得更好用了。以前你得记住一堆 API,现在直接描述需求就行。

#用 ChatGPT / Claude 写 Pandas 代码

最高效的姿势:把你的数据前几行贴给 AI,然后用自然语言描述你要干什么。

我的数据长这样:
name, city, revenue, date
张三, 上海, 5000, 2024-01-15
李四, 北京, 3000, 2024-01-16
...

帮我按城市算月度总收入,并画一个柱状图。

AI 生成的 Pandas 代码准确率非常高,因为 Pandas 在训练数据里占比极大。

#什么时候 AI 生成的代码要小心

  • 大数据量的性能问题:AI 可能给你写 apply 而不是向量化操作,小数据没区别,大数据慢 100 倍
  • merge 的 how 参数:AI 有时候默认用 inner,你可能需要 left,一字之差结果完全不同
  • 时区处理:AI 经常忽略时区,如果你的数据涉及多时区,自己检查一遍

#在 Jupyter 里配合 AI

在 Jupyter Notebook 里用 Pandas + AI 是目前最顺滑的数据分析流程。写一段,跑一段,看结果,再让 AI 帮你改。这个反馈循环非常快。


#版本与生态注意事项

#Pandas 2.x 的变化

Pandas 2.0(2023 年发布)引入了 Apache Arrow 作为后端,这意味着:

  • 内存占用更小:字符串列从 Python 对象变成 Arrow 字符串,内存省一半
  • 速度更快:某些操作快了 2-5 倍
  • nullable 类型更统一:不再用 NaN 和 None 混着来

升级建议:新项目直接用 2.x,老项目如果没遇到性能瓶颈,先别急着升,API 有些小变化可能影响你的代码。

#和其他工具的关系

工具和 Pandas 的关系
NumPyPandas 的底层,数组计算引擎
Matplotlib / SeabornPandas 内置 .plot() 就是调它们
Scikit-learn接受 DataFrame 作为输入
PolarsPandas 的高性能替代,API 不同但思路类似
DuckDB可以直接对 DataFrame 跑 SQL
JupyterPandas 最常见的运行环境
SQLAlchemyPandas read_sql 背后的数据库连接层

#安装

bash
pip install pandas # 推荐:带性能优化的完整安装 pip install "pandas[performance]" # 如果要读写 Excel pip install openpyxl

#适不适合你:快速自检

在学 Pandas 之前,先过一遍这个清单:

  • 你是否经常处理 CSV、Excel 或数据库里的表格数据
  • 你是否厌倦了在 Excel 里重复操作
  • 你会基础 Python(变量、循环、函数)
  • 你处理的数据量在几百 MB 以内
  • 你需要做数据清洗、统计汇总或可视化

如果 3 个以上打勾了,Pandas 就是你下一步该学的。

如果你的数据全在数据库里,而且只需要简单查询和聚合,可能直接写 SQL 更高效。Pandas 的优势在"SQL 做不了的事"——复杂清洗、多源数据合并、特征工程、自定义计算。


#什么时候千万别用 Pandas

这个不是唱反调,而是为了帮你省时间:

  • 实时数据处理:Pandas 是批处理工具,不适合流式数据,考虑 Kafka + Flink
  • 超大规模数据:超过内存的数据,Pandas 直接 OOM,换 Spark 或 Dask
  • 生产环境的 API 服务:别在 Web 服务里 import pandas 做计算,启动慢、内存大,用 SQL 或专用服务
  • 简单的文件读写:只是读个 JSON 或 CSV 取一两个字段,csv 标准库就够了,不用搬出 Pandas

#相关资源

  • Polars 指南 — Pandas 的高性能替代方案
  • DuckDB 指南 — 对 DataFrame 直接跑 SQL
  • Jupyter 指南 — Pandas 最佳搭档

#官方资源

Pandas 官方 Cheat Sheet(建议收藏打印)
Pandas 官方 Cheat Sheet(建议收藏打印)

  • Pandas 官网:https://pandas.pydata.org↗
  • Pandas 文档:https://pandas.pydata.org/docs/↗
  • Pandas Cheat Sheet:https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf↗
免费资源

精选免费资料与工具合集

课程、工具与资料一站式获取。

查看免费资源 →

相关指南

Polars 高性能数据分析指南Polars 高性能数据分析指南→
Jupyter Notebook 指南Jupyter Notebook 指南→
DuckDB 分析数据库指南DuckDB 分析数据库指南→

相关路线图

ai-engineer→

常见问题

Pandas 和 Excel 相比有什么优势?
Pandas 可以处理百万级数据,支持编程自动化,与 Python 生态无缝集成,适合重复性数据处理任务。
Pandas 适合大数据处理吗?
Pandas 适合中小规模数据(几GB以内)。超大数据集建议使用 Polars 或 DuckDB。

目录

  • Pandas:数据分析绕不开的第一把刀
  • 先说结论
  • 这几个概念你得先搞明白
  • DataFrame:一张 Excel 表
  • Series:Excel 里的一列
  • Index:每行的门牌号
  • GroupBy:分组统计的核心
  • merge / join:把两张表拼起来
  • 真实使用场景
  • 清洗脏数据——Pandas 吃饭的活
  • 先看看有多少空值
  • 电话号码:去空格、去括号,空的填 NaN
  • 去重:同一个邮箱只保留最新的一条
  • 自动生成月度报表
  • 按产品分类汇总
  • 导出 Excel,自带格式
  • 给机器学习做特征工程
  • 时间特征
  • 编码分类变量
  • 处理缺失值
  • Pandas 最容易翻车的地方
  • ❌ 会报警告
  • ✅ 安全写法
  • AI 时代的 Pandas
  • 用 ChatGPT / Claude 写 Pandas 代码
  • 什么时候 AI 生成的代码要小心
  • 在 Jupyter 里配合 AI
  • 版本与生态注意事项
  • Pandas 2.x 的变化
  • 和其他工具的关系
  • 安装
  • 推荐:带性能优化的完整安装
  • 如果要读写 Excel
  • 适不适合你:快速自检
  • 什么时候千万别用 Pandas
  • 相关资源
  • 官方资源