Pandas DataFrame.merge()2024 年 8 月 29 日 | 4 分钟阅读 Pandas merge() 被定义为将两个数据集合并成一个,并基于公共属性或列对齐行的过程。它是 DataFrame 对象之间所有标准数据库连接操作的入口点。 语法参数- right: DataFrame 或具名 Series
它是与 DataFrame 合并的对象。 - how: {'left', 'right', 'outer', 'inner'}, 默认 'inner'
要执行的合并类型。- left: 仅使用左侧框架的键,类似于 SQL 左外连接;保留键的顺序。
- right: 仅使用右侧框架的键,类似于 SQL 右外连接;保留键的顺序。
- outer: 使用来自两个框架的键的并集,类似于 SQL 全外连接;按字典顺序对键进行排序。
- inner: 使用来自两个框架的键的交集,类似于 SQL 内连接;保留左侧键的顺序。
- on: label 或 list
它是要在其上连接的列或索引级别名称。它必须存在于左右两个 DataFrame 中。如果 on 为 None 并且不基于索引合并,则默认为两个 DataFrame 中列的交集。 left_on: label 或 list, or array-like 它是来自左侧 DataFrame 的列或索引级别名称,用作键。它可以是长度等于 DataFrame 长度的数组。 - right_on: label 或 list, or array-like
它是来自右侧 DataFrame 的列或索引级别名称,用作键。它可以是长度等于 DataFrame 长度的数组。 - left_index : bool, 默认 False
如果为 true,则使用左侧 DataFrame 的索引作为连接键。对于 MultiIndex(分层索引),另一个 DataFrame 中的许多键(索引或某些列)应与级别的数量匹配。 - right_index : bool, 默认 False
使用右侧 DataFrame 的索引作为连接键。它与 left_index 具有相同的用法。 - sort: bool, 默认 False
如果为 True,则在结果 DataFrame 中按字典顺序对连接键进行排序。否则,连接键的顺序取决于连接类型(how 关键字)。 - suffixes: tuple of the (str, str), default ('_x', '_y')
它是要分别应用于左右 DataFrame 中重叠的列名的后缀。列使用 (False, False) 值来引发关于重叠的异常。 - copy: bool, 默认 True
如果为 True,则返回 DataFrame 的副本。 否则,它可以避免复制。 - indicator: bool or str, 默认 False
如果为 True,它会向输出 DataFrame 添加一个列 "_merge",其中包含关于每行来源的信息。 如果它是一个字符串,则将包含关于每行来源的信息的列添加到输出 DataFrame,并且该列将被命名为字符串的值。 信息列定义为类别类型,并采用以下值- "left_only" 用于合并键仅出现在 DataFrame 的 “left” 中的观测值,而
- "right_only" 被定义为合并键仅出现在 DataFrame 的 “right” 中的观测值,
- "both" 如果在两个 DataFrame 中都找到了观测的合并键。
- validate: str, optional
如果指定了它,它将检查下面给出的合并类型- "one_to_one" 或 "1:1": 它检查合并键在左右两个数据集中是否唯一。
- "one_to_many" 或 "1:m": 它检查合并键是否仅在左侧数据集中唯一。
- "many_to_one" 或 "m:1": 它检查合并键是否仅在右侧数据集中唯一。
- "many_to_many" 或 "m:m": 它是允许的,但不进行检查。
示例 1:基于键合并两个 DataFrame输出 id Name subject_id
0 1 John sub1
1 2 Parker sub2
2 3 Smith sub4
3 4 Parker sub6
id Name subject_id
0 1 William sub2
1 2 Albert sub4
2 3 Tony sub3
3 4 Allen sub6
示例 2:基于多个键合并两个 DataFrame输出 id Name_x subject_id_x Name_y subject_id_y
0 1 John sub1 William sub2
1 2 Parker sub2 Albert sub4
2 3 Smith sub4 Tony sub3
3 4 Parker sub6 Allen sub6
|