Python Pandas完全指南:从核心数据结构到实战操作 📅 发布时间:2026/7/16 18:54:46 👁️ 浏览次数: Pandas 是 Python 中最核心的数据分析库专为高效处理结构化数据如表格、时间序列设计提供了直观的数据结构和丰富的操作方法。它基于 NumPy 构建弥补了 NumPy 对非数值/混合类型数据的支持不足是数据分析、机器学习预处理环节的必备工具。一、核心数据结构Pandas 的两大核心对象是Series一维和DataFrame二维覆盖了绝大多数数据分析场景1. Series一维带标签数组类似“带索引的列表”每个元素有唯一的标签index和对应的值value。示例import pandas as pd # 从列表创建 Series默认索引为 0,1,2... s pd.Series([10, 20, 30, 40]) print(s) # 输出 # 0 10 # 1 20 # 2 30 # 3 40 # dtype: int64 # 自定义索引 s pd.Series([10, 20, 30], index[a, b, c]) print(s[a]) # 输出102. DataFrame二维表格型数据类似 Excel 表格或 SQL 表由行索引index、列名columns和数据值组成每列可以是不同数据类型int/float/str/datetime 等。示例# 从字典创建 DataFrame键为列名值为列数据 data { 姓名: [张三, 李四, 王五], 年龄: [20, 22, 21], 成绩: [85.5, 92.0, 78.5] } df pd.DataFrame(data) print(df) # 输出 # 姓名 年龄 成绩 # 0 张三 20 85.5 # 1 李四 22 92.0 # 2 王五 21 78.5二、数据读取与写入Pandas 支持读取几乎所有常见格式的文件常用方法如下文件格式读取方法写入方法CSVpd.read_csv(file.csv)df.to_csv(file.csv, indexFalse)Excelpd.read_excel(file.xlsx)df.to_excel(file.xlsx, indexFalse)JSONpd.read_json(file.json)df.to_json(file.json)SQLpd.read_sql(query, conn)df.to_sql(table, conn, if_existsreplace)注意read_excel需要安装openpyxl处理.xlsx或xlrd处理旧版.xls依赖pip install openpyxl xlrd三、常用操作1. 查看数据基本信息df pd.read_csv(data.csv) # 前5行默认/ 后n行 df.head(5) # 前5行 df.tail(3) # 后3行 # 数据形状行数, 列数 df.shape # 输出(100, 5) # 列名 df.columns # 输出Index([姓名, 年龄, ...], dtypeobject) # 数据类型与缺失值统计 df.info() # 显示每列的非空值数量、数据类型 # 描述性统计仅数值列 df.describe() # 输出 count/mean/std/min/max/四分位数等2. 选择数据按列选择df[列名]或df[[列1, 列2]]多列需传列表df[姓名] # 单列返回 Series df[[姓名, 年龄]] # 多列返回 DataFrame按行选择位置索引类似列表切片df.iloc[行范围, 列范围]左闭右开df.iloc[0:2] # 前2行 df.iloc[0:2, 0:2] # 前2行前2列标签索引df.loc[行标签范围, 列标签范围]闭区间df.loc[0:1, 姓名:年龄] # 行0~1 列姓名~年龄条件筛选df[条件表达式]df[df[年龄] 20] # 年龄20的行 df[(df[年龄]20) (df[成绩]80)] # 多条件需用/|且加括号3. 数据处理缺失值处理df.isnull() # 标记缺失值True/False df.isnull().sum() # 统计每列缺失值数量 df.dropna() # 删除含缺失值的行默认 df.fillna(0) # 用0填充缺失值 df.fillna(df.mean()) # 用均值填充数值列缺失值去重df.drop_duplicates() # 删除重复行默认保留第一行排序df.sort_values(by成绩, ascendingFalse) # 按成绩降序排列新增/修改列df[是否成年] df[年龄] 18 # 新增布尔列 df[成绩等级] df[成绩].apply(lambda x: 优 if x90 else 良 if x80 else 中)分组聚合GroupBy# 按班级分组计算每班的平均成绩 df.groupby(班级)[成绩].mean() # 多聚合操作按班级分组同时算平均、最高成绩 df.groupby(班级)[成绩].agg([mean, max])合并数据Merge/Join/Concat# 类似SQL的JOIN内连接 pd.merge(df1, df2, on共同列名, howinner) # 纵向拼接需列名一致 pd.concat([df1, df2], axis0) # axis0行拼接axis1列拼接四、时间序列处理Pandas 对时间序列的支持非常强大核心是将字符串转换为datetime类型# 解析日期列 df[日期] pd.to_datetime(df[日期], format%Y-%m-%d) # format指定格式可选 # 提取时间属性 df[年份] df[日期].dt.year df[月份] df[日期].dt.month df[星期几] df[日期].dt.dayofweek # 0周一6周日 # 设置时间为索引便于按时间筛选/重采样 df.set_index(日期, inplaceTrue) # 按周重采样求每周的平均值 df.resample(W).mean() # W周D天M月Y年五、优势总结简洁易用语法接近自然语言降低数据分析门槛高效性能底层基于 Cython 优化处理百万级数据仍流畅生态丰富与 NumPy、Matplotlib、Scikit-learn、Seaborn 等库无缝衔接覆盖“数据读取→清洗→分析→可视化→建模”全流程。六、学习建议先掌握Series/DataFrame 基本操作选择、筛选、聚合重点练习缺失值处理、分组聚合、合并数据实际项目高频需求结合官方文档Pandas Documentation和实战案例如 Kaggle 数据集分析巩固。Pandas 是数据分析师的“瑞士军刀”熟练使用它能极大提升工作效率
小程序毕设选题推荐:基于微信小程序的书院预约系统的设计与实现基于springboot+vue的微信小程序的书院预约系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/15 4:27:17
网络威胁情报:将隐藏线索转化为网络安全力量 网络威胁情报:将隐藏线索转化为网络安全力量 每一起网络攻击都会留下痕迹:一次奇怪的登录尝试、异常的流量或一封可疑的电子邮件。这些细节孤立来看可能无害,但一旦联系起来,就能揭示关于入侵者身份和手段的完整图景。这就是网络… 2026/5/17 0:45:14
【信号分解】正交变分模态分解附Matlab代码 ✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#… 2026/5/17 0:45:14
CANN/asc-devkit浮点转整标量函数 asc_float2int32 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcod… 2026/7/16 18:54:32
动态组合查询不再难!jpa-spec中And/Or条件的嵌套使用技巧 动态组合查询不再难!jpa-spec中And/Or条件的嵌套使用技巧 【免费下载链接】jpa-spec A JPA Query By Specification framework. 项目地址: https://gitcode.com/gh_mirrors/jp/jpa-spec jpa-spec是一个强大的JPA查询构建框架,它提供了简洁的API帮… 2026/7/16 18:54:32
CANN Ascend C SIMD寄存器加载API asc_loadalign_brc_elem2datablock_postupdate 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。… 2026/7/16 18:54:32
faster-whisper终极指南:4倍速语音转文字工具完全解析 faster-whisper终极指南:4倍速语音转文字工具完全解析 【免费下载链接】faster-whisper Faster Whisper transcription with CTranslate2 项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper 想要体验4倍速的语音转录同时大幅降低内存占用吗&… 2026/7/16 18:52:31
AI 生活化应用的微服务拆分:从单体到服务边界的渐进策略 AI 生活化应用的微服务拆分:从单体到服务边界的渐进策略 一、生活场景中的单体膨胀困境 开发一款集日程管理、情绪记录、食谱推荐于一体的 AI 生活助手时,初期采用单体架构是合理的。但随着功能模块增多,单体应用的部署耦合、资源争抢、故障传… 2026/7/16 18:50:31
Rainbow-delimiters深度优化技巧:让括号高亮更快更精准 Rainbow-delimiters深度优化技巧:让括号高亮更快更精准 【免费下载链接】rainbow-delimiters Emacs rainbow delimiters mode 项目地址: https://gitcode.com/gh_mirrors/ra/rainbow-delimiters Rainbow-delimiters是一款专为Emacs设计的括号高亮插件&#x… 2026/7/16 18:46:29
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并 摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代… 2026/7/16 0:00:26
HAM未来路线图:下一代高可用迁移技术的发展方向与展望 HAM未来路线图:下一代高可用迁移技术的发展方向与展望 【免费下载链接】ham Based on the remote memory access capability and high bandwidth of the UB, deterministic duration virtual machine live migration is achieved, addressing planned downtime issu… 2026/7/16 0:04:27
月球是否是从地球分离出去的?——容度原理解释 月球是否是从地球分离出去的?——容度原理解释一、月球起源的“三大假说”与容度原理的重新审视月球起源的三大假说——捕获说(月球是太阳系中独立的星体,被地球引力捕获)、共生说(月球与地球同时从原始星云中形成&… 2026/7/16 0:06:27
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/16 3:47:53
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/16 12:08:13