问答 · ANSWER

pandas 的 merge 和 concat 有什么区别?

直接回答
concat是沿轴拼接,不关心内容关联;merge是基于键值(列)进行关联连接,类似数据库JOIN。

关键要点

  • concat是沿轴(axis=0纵向或axis=1横向)的简单拼接,默认外连接。
  • merge是基于键(列)的关联连接,支持四种连接方式(inner/outer/left/right)。
  • concat不关心数据内容,按索引或列名堆叠;merge根据键值匹配行。
  • concat默认保留所有索引或列名,缺失处用NaN填充。
  • merge常用于整合不同来源但有关联的数据表。
  • concat常用于合并结构相似的数据,如不同时间段的数据。
  • merge的连接键可通过on、left_on、right_on参数灵活指定。
  • concat的合并方向由axis参数决定,行为更基础直接。

怎么选 / 怎么做

选择规则:
- 需要将结构相同或相似的数据简单堆叠(上下追加或左右并排)时,用 concat。
- 需要根据一个或多个共同列(键)将两个表关联起来(像数据库JOIN)时,用 merge。

常见问题

什么时候用 concat?

结构相似的数据简单堆叠时用concat。(23字符)

什么时候用 merge?

根据共同列关联不同数据表时用merge。(22字符)

concat 默认怎么处理不同列名?

取列名并集,缺失处补NaN。(16字符)

merge 有哪几种连接方式?

内连接、外连接、左连接、右连接。(18字符)

深入学

小象教研组整理 · 内容来自课程讲义与企业内训素材,仅供学习参考。