news 2026/6/10 16:10:26

办公室中的Python课 P17 【多表合体】Pandas:Merge 与 Concat

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
办公室中的Python课 P17 【多表合体】Pandas:Merge 与 Concat

📂 P17 【多表合体】Pandas:Merge 与 Concat(比 VLOOKUP 强百倍)

🎯 学习目标:

  • 物理堆叠 (concat):学会把结构相同的多个表(如 12 个月的月报)纵向拼接。
  • 逻辑关联 (merge):掌握数据库级别的表连接(类似 VLOOKUP/XLOOKUP,但更强大)。
  • 连接方式:理解内连接(Inner)、左连接(Left)和全连接(Outer)的区别。
  • AI 协作:利用通义灵码处理“列名不一致”时的自动关联。

🌟 引导词

“在 Excel 里,如果你要给 10 万行数据匹配产品单价,VLOOKUP 可能会让电脑卡死。如果你要合并 50 个分公司的表格,手动复制粘贴更是一场噩梦。
这一课,我们要学习 Pandas 的两项核心特技:concat(像搭积木一样上下或左右拼接)和merge(像拼图一样通过‘关键词’找关联)。掌握了它们,你就能在几秒钟内完成原本需要折腾一个下午的数据整合工作。**


一、concat:简单的物理拼接

如果你有三个月(1月、2月、3月)的销售表,格式一模一样,你想把它们合成一个“第一季度总表”,这就是concat的用武之地。

importpandasaspd df1=pd.read_excel("1月销售.xlsx")df2=pd.read_excel("2月销售.xlsx")df3=pd.read_excel("3月销售.xlsx")# 纵向拼接(默认 axis=0,即上下叠罗汉)# ignore_index=True 可以让行号重新排序quarter_df=pd.concat([df1,df2,df3],ignore_index=True)

二、merge:逻辑关联(VLOOKUP 的终结者)

当你需要根据“产品ID”,把“销售表”和“产品价格表”关联起来时,就要用到merge

1. 核心逻辑:四种连接方式
  • Left Join (左连接):保留左边表(如销售流水)的所有行,匹配右边表的信息。没匹配上的填空值。(最常用,类似 VLOOKUP)
  • Inner Join (内连接):只保留两个表里都能匹配上的行。
  • Outer Join (全连接):两个表的数据都留着,能配上的配对,不能配的留空。
2. 代码实战
# 假设 sales_df 有 '产品ID', '销量'# price_df 有 '产品ID', '单价'# 根据 '产品ID' 进行左连接result=pd.merge(sales_df,price_df,on='产品ID',how='left')# 如果两个表的关联列名不一样(比如一个叫‘ID’,一个叫‘编号’)result=pd.merge(sales_df,price_df,left_on='产品ID',right_on='编号',how='left')

三、手把手 AI 实战:处理“不听话”的匹配

在多表合并时,列名对不上、数据类型不统一是最大的坑。

1. Ask 模式:智能生成合并脚本
  • 操作:输入指令:

我有两个 df。A 表叫 df_user,有 'UserID';B 表叫 df_order,有 'uid'。请帮我写一段 Pandas 代码把它们合并:1. 使用左连接;2. 合并后把 'UserID' 为空的行删掉。

  • AI 价值:它会帮你处理left_onright_on的逻辑,并附带dropna清洗。
2. Edit 模式:自动批量合并
  • 操作:选中你手动读取并拼接的代码。
  • 动作:右键 ->通义灵码->智能编辑
  • 指令帮我修改这段代码,改用列表推导式和 os 库,自动读取当前文件夹下所有以“销售”开头的 Excel 文件并用 concat 合并。
  • 效果:代码量缩减 80%,自动化程度翻倍。
3. Agent 模式:跨表核对差异
  • 操作:输入/agent
  • 指令我有两份员工名单。请帮我找出:1. 在 A 表里有但 B 表里没有的人;2. 两份表里都存在但‘工资’数据不一致的人。

🛠️ 课后练习

  1. 新建P17_merge_test.py
  2. 模拟实验
  • 创建两个简单的 CSV 文件:一个存“学生姓名和学号”,一个存“学号和考试成绩”。
  • 用 Python 读取它们。
  • 尝试用merge把成绩匹配到姓名后面。
  • 进阶挑战:故意在成绩表里少写几个人的成绩,观察how='left'how='inner'的结果有什么不同。

总结与预告

  • concat:解决“表太多”的问题(物理堆叠)。
  • merge:解决“信息分散”的问题(逻辑关联)。
  • **on/how**:是 merge 函数最重要的两个参数。

[下一篇 (P18),我们将学习Pandas:文本处理与正则匹配的高级应用。你将学会如何从杂乱的地址、备注信息中,用一行代码提取出电话号码或身份证号!**

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:06:36

HeyGem数字人系统运行日志在哪看?实时监控技巧分享

HeyGem数字人系统运行日志在哪看?实时监控技巧分享 在AI数字人视频生成日益普及的今天,一个常见的场景是:你提交了批量任务,页面进度条卡在“处理中”不动,刷新也没用——这时候前端毫无反馈,问题到底出在哪…

作者头像 李华
网站建设 2026/6/10 15:06:34

CPU fallback模式可用吗?无GPU时HeyGem仍可运行但较慢

CPU fallback模式可用吗?无GPU时HeyGem仍可运行但较慢 在AI视频生成工具日益普及的今天,一个现实问题摆在许多用户面前:我没有高端显卡,能不能跑得动这些“重模型”应用? 答案是——可以。以HeyGem数字人视频生成系统为…

作者头像 李华
网站建设 2026/5/31 19:46:25

HeyGem支持4K输入吗?超高清视频处理能力实测报告

HeyGem支持4K输入吗?超高清视频处理能力实测报告 在数字人技术加速落地的今天,越来越多的企业开始尝试用AI驱动虚拟形象生成营销内容、客服应答甚至在线教学视频。随着显示设备不断升级,用户对画质的要求早已从“能看”转向“好看”——1080p…

作者头像 李华
网站建设 2026/6/5 15:10:53

AI口型同步准确率有多高?HeyGem语音驱动面部动作精度测评

AI口型同步准确率有多高?HeyGem语音驱动面部动作精度测评 在短视频与在线教育爆发式增长的今天,企业对高效、低成本制作专业讲解视频的需求从未如此迫切。一个常见的场景是:某公司需要为十位不同讲师统一录制一段产品介绍,传统方式…

作者头像 李华
网站建设 2026/5/23 7:31:05

【C#数据过滤终极指南】:掌握高效数据处理的7种核心技巧

第一章:C#数据过滤的核心概念与意义在现代软件开发中,处理和筛选数据是应用程序的核心任务之一。C# 作为一门功能强大的面向对象语言,提供了多种机制来实现高效的数据过滤。理解这些机制不仅有助于提升代码的可读性,还能显著提高程…

作者头像 李华