Python Pandas 合并/连接
Pandas有全功能的、高性能的内存连接操作,与SQL等关系型数据库非常相似。
Pandas提供了一个单一的函数, merge ,作为DataFrame对象之间所有标准数据库连接操作的入口。
在这里,我们使用了以下参数–
- left – 一个DataFrame对象。
-
right – 另一个DataFrame对象。
-
on – 要连接的列(名称)。必须在左边和右边的DataFrame对象中都能找到。
-
left_on – 左边DataFrame的列作为键。可以是列名,也可以是长度等于DataFrame长度的数组。
-
right_on – 右边DataFrame的列作为键。可以是列名,也可以是长度等于DataFrame长度的数组。
-
left_index – 如果 为真, 使用左边DataFrame的索引(行标签)作为其连接键。如果是一个具有多索引(分层)的DataFrame,其层数必须与右边DataFrame的连接键的数量相匹配。
-
right_index – 与 left_index 的用法相同,用于右边的DataFrame。
-
how – “左”、”右”、”外”、”内 “中的一个。默认为内部。每种方法在下面都有描述。
-
sort – 按照连接键对结果DataFrame进行排序。默认为True,设置为False在很多情况下会大幅提高性能。
现在让我们创建两个不同的DataFrame并对其进行合并操作。
其 输出结果 如下 –
合并一个键上的两个DataFrame
其 输出结果 如下 –
在多个键上合并两个DataFrame
其 输出结果 如下 –
使用 “how”参数进行合并
合并的参数 how 指定了如何确定哪些键将被包含在结果表中。如果一个键的组合没有出现在左表或右表中,那么合并后的表的值将是NA。
下面是 how 选项和它们的SQL等价名称的摘要:
合并方法 | SQL等价物 | 说明 |
---|---|---|
左 | 左外连接 | 使用左边对象的键 |
右 | 右外联接 | 使用右边对象的键 |
外接 | 完全外部连接 | 使用键的联合 |
内部 | 内联接 | 使用键的交集 |
左联接
其 输出 情况如下—
正确加入
其 输出结果 如下 –
外层连接
其 输出 情况如下—
内部连接
连接将在索引上执行。联接操作尊重它所调用的对象。 因此, a. join(b) 不等于 b. join(a)。
其 输出结果 如下 –