跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Pandas 操作 Excel 的 9 个常用场景

Pandas 是 Python 里处理 Excel 的常用库。通过九个实例演示了读写文件、筛选行列、增删改数据、合并表格以及生成数据透视表等操作,能够覆盖日常办公自动化的多数需求。

漫步发布于 2026/6/11更新于 2026/8/2318 浏览
Pandas 操作 Excel 的 9 个常用场景

Pandas 操作 Excel 的常用场景

Pandas 用来操作 Excel 很顺手,下面整理了 9 个常见操作,覆盖了日常工作中大部分场景。

读取与写入

先用字典创建一个 DataFrame,设置工号为索引,写入 Excel 再读出来。读回时索引会变成普通列,如果想保留索引,可以在 read_excel 时指定 index_col 参数。不过日常使用,知道基本的读写就够了。

import pandas as pd
# 通过字典形式构建 DataFrame
df = pd.DataFrame({
    '工号': [1001, 1002, 1003],
    '姓名': ['张三', '李四', '王五'],
    '年龄': [28, 25, 30]
})
df = df.set_index('工号') # 自定义索引
df.to_excel('人事信息.xlsx') # 写入 excel
df = pd.read_excel('人事信息.xlsx') # 读取 excel
print(df)
# 输出结果:
#      工号  姓名  年龄
# 0  1001  张三  28
# 1  1002  李四  25
# 2  1003  王五  30

选择列

选择某一列很简单,直接用列名索引。

# 选择 Name 列数据
names = df['姓名']
print(names)
# 输出结果:
# 0    张三
# 1    李四
# 2    王五

选择行

用 loc 按标签索引选择行,iloc 按位置也可以。

# 选择第一行数据
first_row = df.loc[0]
print(first_row)
# 输出结果:
# 工号    1001
# 姓名      张三
# 年龄      28

条件过滤

条件过滤直接写布尔表达式。

# 过滤年龄大于 25 的行
filtered_data = df[df['年龄'] > 25]
print(filtered_data)
# 输出结果:
#      工号  姓名  年龄
# 0  1001  张三  28
# 2  1003  王五  30

添加列

添加新列,直接赋值。注意长度要匹配。

# 添加新列
df['籍贯'] = ['广东', '广西', '湖南']
print(df)
# 输出结果:
#      工号  姓名  年龄  籍贯
# 0  1001  张三  28  广东
# 1  1002  李四  25  广西
# 2  1003  王五  30  湖南

删除列

删除列用 drop,axis=1 表示列,inplace=True 可以直接修改原 DataFrame,不过返回新对象也行。

# 删除年龄列
df = df.drop('年龄', axis=1)
print(df)
# 输出结果:
#      工号  姓名  籍贯
# 0  1001  张三  广东
# 1  1002  李四  广西
# 2  1003  王五  湖南

修改数据

修改单元格,loc 定位到具体位置。

# 修改第一行第一个元素为'陈六'
df.loc[0, '姓名'] = '陈六'
print(df)
# 输出结果:
#      工号  姓名  籍贯
# 0  1001  陈六  广东
# 1  1002  李四  广西
# 2  1003  王五  湖南

合并表格

合并多个表用 concat 纵向拼接,前提是列结构一致。如果结构不同,可以用 merge。

# 读取另一个 Excel 文件
df2 = pd.read_excel('example2.xlsx')

# 合并两个 DataFrame
merged_df = pd.concat([df, df2])
print(merged_df)

数据透视表

透视表是数据分析常用功能,pivot_table 参数清晰,默认聚合函数是 mean,指定 aggfunc='sum' 进行求和。

# 生成数据透视表
import pandas as pd
# 创建销售数据集
data = {'日期': ['2024-04-01', '2024-04-02', '2024-04-02', '2024-04-02', '2024-04-03'],
        '产品': ['苹果', '香蕉', '苹果', '香蕉', '苹果'],
        '销售额': [1000, 1500, 800, 1200, 1500]}
df = pd.DataFrame(data)
# 显示数据集
print(df)
pivot_table = df.pivot_table(index='日期', columns='产品', values='销售额', aggfunc='sum')

# 显示数据透视表
print(pivot_table)
# 数据结果:
# 产品              苹果      香蕉
# 日期                        
# 2024-04-01  1000.0     NaN
# 2024-04-02   800.0  2700.0
# 2024-04-03  1500.0     NaN

这些操作在实际写脚本时经常用到,熟练之后效率能提升不少。另外,Pandas 还有很多高级功能,但先把基础的玩熟再说。

目录

  1. Pandas 操作 Excel 的常用场景
  2. 读取与写入
  3. 通过字典形式构建 DataFrame
  4. 输出结果:
  5. 工号 姓名 年龄
  6. 0 1001 张三 28
  7. 1 1002 李四 25
  8. 2 1003 王五 30
  9. 选择列
  10. 选择 Name 列数据
  11. 输出结果:
  12. 0 张三
  13. 1 李四
  14. 2 王五
  15. 选择行
  16. 选择第一行数据
  17. 输出结果:
  18. 工号 1001
  19. 姓名 张三
  20. 年龄 28
  21. 条件过滤
  22. 过滤年龄大于 25 的行
  23. 输出结果:
  24. 工号 姓名 年龄
  25. 0 1001 张三 28
  26. 2 1003 王五 30
  27. 添加列
  28. 添加新列
  29. 输出结果:
  30. 工号 姓名 年龄 籍贯
  31. 0 1001 张三 28 广东
  32. 1 1002 李四 25 广西
  33. 2 1003 王五 30 湖南
  34. 删除列
  35. 删除年龄列
  36. 输出结果:
  37. 工号 姓名 籍贯
  38. 0 1001 张三 广东
  39. 1 1002 李四 广西
  40. 2 1003 王五 湖南
  41. 修改数据
  42. 修改第一行第一个元素为'陈六'
  43. 输出结果:
  44. 工号 姓名 籍贯
  45. 0 1001 陈六 广东
  46. 1 1002 李四 广西
  47. 2 1003 王五 湖南
  48. 合并表格
  49. 读取另一个 Excel 文件
  50. 合并两个 DataFrame
  51. 数据透视表
  52. 生成数据透视表
  53. 创建销售数据集
  54. 显示数据集
  55. 显示数据透视表
  56. 数据结果:
  57. 产品 苹果 香蕉
  58. 日期
  59. 2024-04-01 1000.0 NaN
  60. 2024-04-02 800.0 2700.0
  61. 2024-04-03 1500.0 NaN
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 21m/s!UZH RPG组T-RO新作AC-MPC:微分MPC赋能强化学习,实现超人级无人机竞速
  • ORB-SLAM3 开源视觉与视觉惯性 SLAM 库详解
  • Java 快速开发平台对比:若依、芋道、Jeesite、JeecgBoot
  • 无人机辅助射频探测无线地下土壤健康监测智能钉平台
  • Python 实现 MCP 客户端调用高德地图天气查询示例
  • 世界职业院校技能大赛人工智能赛道解析
  • ROS1 导航栈与路径规划实战
  • 大模型面试核心知识点总结与参考答案
  • 基于 FastGPT 与 MCP 协议构建工具增强型智能体
  • C++ 哈希表原理与 unordered 容器实战
  • 基于 Java 与 Vue 的大学生理财记账贷款系统
  • NPlayer 流媒体接入实战:HLS、FLV 与 WebRTC 详解
  • OpenClaw 对接飞书群机器人配置问题排查:消息不回与 Gateway 断开
  • Java 应用报错 No buffer space available 排查与解决
  • Rokid JSAR 基于 Web 技术栈的 AR 开发环境搭建与 3D 时钟实战
  • Redis 与分布式架构入门:从单机到微服务的演进之路
  • AI 时代产品经理工作流:从需求挖掘到上线管控全流程
  • 将 OpenClaw AI Gateway 部署至 Android:Termux 与 Flutter App 实践
  • 基于 AI 辅助的 Java 在线考试系统开发实践
  • AI 辅助解码加密字符串的技术实践与实现

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online