多表合并
python的Pandas库为数据合并操作提供了多种合并方法,如merge()、join()和concat()等方法。
使用merge()方法合并数据集
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
参数解释:
left − 数据帧对象。
right − 另一个数据帧对象。
on − 要连接的列(名称)。必须在左侧和右侧数据框对象中找到。
left_on − 左数据框中用作键的列。可以是列名,也可以是长度等于数据帧长度的数组。
right_on − 右数据框中用作键的列。可以是列名,也可以是长度等于数据帧长度的数组。
left_index− 如果为True,则使用左侧数据框中的索引(行标签)作为其连接键。对于具有多索引(分层)的数据帧,级别数必须与右数据帧的连接键数匹配。
right_index − 与右数据帧的左索引用法相同。
how − “left”、“right”、“outer”、“inner”中的一个。默认为“inner”。
sort − 按连接键按字典顺序对结果数据帧进行排序。默认为True,设置为False将在许多情况下显著提高性能。
(1)使用一个键合并两个数据帧
(2)使用多个键合并两个数据帧
(3)使用“how”参数合并
how参数指定如何确定结果表中包含哪些键。如果左表或右表中都没有出现组合键,则联接表中的值将为NA。
合并方法 | 方法描述 |
left | 使用左侧对象的键 |
right | 使用右侧对象的键 |
outer | 使用键的并集 |
inner | 使用键的交集 |
举例说明
使用Left Join左连接方式合并数据帧。
关键技术:请注意on='subject_id',how='left'。代码如下:
使用Right Join右连接方式合并数据帧。
关键技术:请注意on='subject_id',how='right'。代码如下:
使用outer Join外连接方式合并数据帧。
关键技术:请注意on='subject_id',how=’outer’。代码如下:
使用inner Join合并数据帧。
2. 使用join()方法合并数据集
参数 | 描述 |
Self | 表示的是join必须发生在同一数据帧上 |
Other | 提到需要连接的另一个数据帧 |
On | 指定必须在其上进行联接的键 |
How | 提到了连接的类型 |
left_suffix | 要从左框架的重叠列中使用的后缀。 |
right_suffix | 要从右框架的重叠列中使用的后缀。 |
sort | 对输出进行排序 |