Python 数据分析三剑客之 Pandas(七):合并数据集

💡 原文中文,约16700字,阅读约需40分钟。
📝

内容提要

本文介绍了Pandas库中合并数据集的几种方法,包括concat、append、merge和join。这些方法支持一对一、多对一和多对多的连接,详细讲解了各方法的语法、参数及示例,帮助用户有效处理数据合并。

🔎

延伸解读

concat 的轴向与连接方式选择

concat 通过 axis 参数控制合并方向:axis=0 沿行方向堆叠,axis=1 沿列方向拼接。join 参数决定列或索引的保留策略:'outer' 保留并集,缺失值填充 NaN;'inner' 仅保留交集。此外,ignore_index 可重置索引,keys 可创建层次索引,verify_integrity 能检查索引重复。这些参数让 concat 能灵活应对多种合并场景。

merge 的连接类型与键指定

merge 默认执行内连接(how='inner'),仅保留两表键的交集;通过 how 参数可改为左连接、右连接或外连接,分别保留左表、右表或两表的所有键。连接键可用 on 指定同名列,或用 left_on 和 right_on 指定不同列名,还可用 left_index 和 right_index 将索引作为键。suffixes 参数用于区分重叠列名,避免冲突。

append 与 join 的适用场景

append 用于在 Series 或 DataFrame 后追加另一个对象,仅按行合并,且返回新对象而不修改原对象。join 方法仅适用于 DataFrame,默认按左连接合并列,可通过 lsuffix 和 rsuffix 处理重叠列名,或用 on 参数指定左表的列与右表索引对齐。两者适合简单的追加或基于索引的列合并。

四种合并方法的区别与选用

concat 可合并多个对象,通过 axis 指定行或列方向,默认行合并取并集;append 只能追加,按行合并;merge 仅合并两个 DataFrame,默认列合并取交集,支持多种连接方式;join 仅合并两个 DataFrame,默认左连接按列合并。理解这些差异有助于根据数据结构和合并需求选择合适的方法。

❓

Q&A

Pandas中有哪些方法可以合并数据集?

Pandas中可以使用concat、append、merge和join方法合并数据集。

如何使用concat方法合并多个DataFrame?

使用concat方法可以沿着指定轴将多个DataFrame堆叠在一起,基本语法为pd.concat(objs, axis=0)。

merge方法与join方法有什么区别?

merge方法用于连接两个DataFrame的行,而join方法用于连接另一个DataFrame的列,且join默认是左连接。

append方法的作用是什么?

append方法用于在一个Series或DataFrame对象后追加另一个对象,返回新对象而不改变原对象。

如何在merge中指定连接的列?

可以使用on、left_on和right_on参数来指定连接的列,on用于指定共同的列名。

在Pandas中如何处理多对多连接?

多对多连接是指两个DataFrame对象中的列的值都有重复值,可以使用pd.merge进行连接。

🏷️

标签

➡️

继续阅读