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

Python之三大基本库——Pandas

Python 三大基本库——Pandas 详解(2026最新版 · 0基础到实战)

在你的Python 快速学习路线图中,NumPy + Pandas + Matplotlib被公认为 Python 数据分析的“三大基本库”。其中Pandas是最核心、最强大的一个,被称为“Python界的Excel”或“数据处理瑞士军刀”。

Pandas 基于 NumPy 构建,专为结构化数据(表格型数据)设计,能轻松完成读取、清洗、转换、分析、聚合、可视化等全流程操作。即使在 2026 年,Pandas 依然是中小规模数据分析(百万行以内)的绝对标准。虽然Polars等新库在速度上更快(尤其是大数据),但 Pandas 生态最完善、文档最友好、与 AI/ML 库兼容最好,强烈建议先彻底掌握 Pandas,再考虑 Polars。

1. Pandas 是什么?为什么必须学?

  • 全称:Python Data Analysis Library(面板数据)
  • 核心优势
    • 像 Excel 一样操作表格,但支持百万级数据、自动化、编程扩展
    • 自动处理缺失值、不同类型数据、对齐索引
    • 与 NumPy(数值计算)、Matplotlib/Seaborn(可视化)、Scikit-learn(机器学习)、Ollama/LangChain(AI)无缝集成
  • 2026 现状:Pandas 3.0 已发布,移除大量弃用功能,性能优化更好,但核心 API 变化不大。

安装(在你的 conda 环境中推荐):

condainstallpandas-cconda-forge# 或 pippipinstallpandas

导入(约定俗成别名):

importpandasaspdimportnumpyasnp# 经常一起用

2. Pandas 两大核心数据结构(必须吃透!)

(1)Series(一维,带标签的数组)

像加强版的列表或字典,有索引(index)

# 创建s1=pd.Series([10,20,30,40],index=['a','b','c','d'])s2=pd.Series({'苹果':5.5,'香蕉':3.2,'橙子':4.8})print(s1)print(s1['b'])# 20 通过标签取值print(s1[1])# 20 通过位置取值(仍支持)
(2)DataFrame(二维表格,最常用!)

像 Excel 表格或数据库表,由多个 Series 组成(列可不同类型)。

data={'姓名':['小明','小红','小刚'],'年龄':[18,17,19],'成绩':[95,88,92]}df=pd.DataFrame(data,index=['一班','二班','三班'])print(df)

查看基本信息(必会):

df.head()# 前5行df.tail(3)# 后3行df.info()# 数据类型、缺失值、非空数df.describe()# 数值列统计(均值、标准差、最大最小等)df.shape# (行数, 列数)df.columns# 列名df.index# 索引

3. 核心操作速通(最常用 80% 场景)

读取与保存数据(入门第一步)
# 读取df=pd.read_csv('data.csv')df=pd.read_excel('data.xlsx',sheet_name='Sheet1')df=pd.read_json('data.json')# 保存df.to_csv('output.csv',index=False)df.to_excel('output.xlsx')
选择数据(索引、切片、过滤)
# 列选择df['姓名']# 单列 → Seriesdf[['姓名','成绩']]# 多列 → DataFrame# 行选择(推荐 loc/iloc)df.loc['一班']# 按标签df.iloc[0]# 按位置df.loc[df['年龄']>18]# 条件过滤df[df['成绩']>=90]# 同时选行列df.loc[df['年龄']>18,['姓名','成绩']]
数据清洗(实际项目最花时间)
df.isnull().sum()# 查看缺失值df.dropna()# 删除缺失行df.fillna(0)# 填充 0df.fillna(df['成绩'].mean())# 填充均值df.drop_duplicates()# 去重df.rename(columns={'成绩':'score'})# 重命名列
排序、添加/修改列
df.sort_values(by='成绩',ascending=False)# 降序df['总分']=df['成绩']*1.1# 新增列df['年龄']=df['年龄']+1# 修改列
分组聚合(GroupBy,神器!)
df.groupby('班级')['成绩'].mean()# 按班级平均成绩df.groupby(['班级','性别']).agg({'成绩':['mean','max'],'年龄':'count'})
合并数据(类似 SQL Join)
pd.merge(df1,df2,on='id',how='left')# left/right/inner/outerpd.concat([df1,df2],axis=0)# 上下合并

4. 简单可视化(直接调用 plot)

df['成绩'].plot(kind='bar')# 柱状图df.plot.scatter(x='年龄',y='成绩')importmatplotlib.pyplotasplt plt.show()

5. 实战小练习(立即动手,在 Jupyter Notebook 完成)

  1. 读取一个 CSV 文件(可用 Kaggle 下载 Titanic 数据),查看前 10 行、形状、缺失值。
  2. 筛选年龄 > 18 且成绩 >= 90 的学生,计算平均成绩。
  3. 新增一列“及格”(成绩>=60 为 True),按及格人数分组统计。
  4. 把 DataFrame 保存为 Excel,并用 describe() 生成统计报告。

推荐练习数据集:Titanic、Iris、Pokemon、自己导出的 Excel。

6. 学习资源推荐(2026最新,免费为主)

  • 官方:pandas.pydata.org/docs/getting_started (10分钟上手 + 教程系列)
  • 视频:YouTube “Pandas Explained: DataFrames & Series (Python 2026 Tutorial)”、Keith Galli 完整教程、B站“2026 Python数据分析教程(numpy+pandas+matplotlib)”
  • 互动:DataCamp Pandas 教程、W3Schools Pandas、GeeksforGeeks Pandas Tutorial
  • 中文:CSDN/B站完整 Pandas 教程、阿里云开发者社区 Pandas 入门指南
  • 进阶:Pandas 官方 Cookbook、《Python for Data Analysis》(Wes McKinney 著,Pandas 作者)

7. 学习建议 & 2026 注意事项

  • 顺序:先掌握 Series + DataFrame 创建/读取 → 选择与过滤 → 清洗与转换 → GroupBy 聚合 → 合并与可视化。
  • 结合之前学习:用列表/字典创建 DataFrame,用 Ollama 本地模型生成练习题或解释报错。
  • 避坑:索引对齐(自动对齐是优势也是坑)、视图 vs 拷贝(SettingWithCopyWarning)、大文件用chunksize分块读取。
  • 下一步:学完 Pandas 后直接进入 Matplotlib/Seaborn 可视化,或用 Pandas + Ollama 做简单数据问答工具(RAG 入门)。
  • Polars 选择:数据超百万行或追求极致速度时再学,语法类似但更快。

Pandas 是你从“会写 Python”到“能做数据分析/AI 数据预处理”的关键跳板。现在就行动:打开终端/conda 环境,pip install pandas jupyter,新建 Notebook,复制上面代码跑一遍!

想看:

  • 完整可运行代码文件(Titanic 实战案例)
  • 某个操作深入详解(如 GroupBy 多级聚合、时间序列处理)
  • Pandas + Ollama 结合项目(用 AI 分析你的 CSV)
  • NumPy 或 Matplotlib 下一课
  • 练习题 + 答案

随时告诉我,我立刻补充!继续你的 Python + AI 速通之路,Pandas 掌握后数据世界就真正打开了!🚀

http://www.jsqmd.com/news/499596/

相关文章:

  • python-flask高校失物招领平台38tp1
  • 基于S7-200 PLC和MCGS的电机转速闭环速度控制系统:带解释的梯形图程序、接线图原理图...
  • GLM-4.7-Flash性能实测:推理速度优化,响应更迅速
  • 三相光伏并网Matlab/Simulink仿真:MPPT控制与LCL滤波器应用
  • GLM-4v-9b多场景落地:教培机构用4090实现课件截图→知识点打标+习题生成
  • JAVA进阶-锁
  • 【Deer-flow】项目解读——subagent 调度
  • python数据结构-字符串
  • MMDOCIR: Benchmarking Multimodal Retrieval for Long Documents
  • APM使用LUA脚本发送实现遥控器PWM信号输出CAN协议信号
  • 广义预测控制(MPGC)在水下机器人中的应用——一场控制算法的探索
  • 卷积神经网络(CNN)在音频特征提取中的角色:SenseVoice-Small模型技术探秘
  • 圣女司幼幽-造相Z-Turbo保姆级教程:cat日志定位问题+Gradio端口映射调试
  • 机器学习创新探索
  • mysql,设置auto_increment
  • KCF算法中的公式如何带入以及C语言实现
  • 零基础搭建免费IP代理池:从原理到实战的保姆级指南
  • 快速入门!Xinference-v1.17.1部署实战:轻松搭建个人AI助手
  • PROJECT MOGFACE跨平台文档生成:替代Typora的智能Markdown写作体验
  • 从接口到业务协同:看懂 SAP 集成与 API 的底层逻辑
  • 神经符号AI:让机器人“能思考、会解释”的下一代控制范式
  • 082手机商城管理系统-ssm
  • LangGraph 核心概念
  • Stable Diffusion v1.5 在内容创作中的应用:快速生成文章插图与创意配图
  • 从接口目录到企业级集成中枢:读懂 SAP Business Accelerator Hub 的真正价值
  • Flet实战:教你用Python打造跨平台Todo应用(支持Win/Mac/Linux)
  • 程序员常见的职业病与预防
  • 从开题到答辩,这些毕业神器让你少走弯路
  • 从业务语义到可用应用:在 SAP Fiori 中创建自定义业务对象的完整思路
  • MySQL Explain 执行计划性能优化