问答 · 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字符)