理解合并
合并根据共享密钥组合两个或多个 DataFrame 以创建新的 DataFrame 。 Pandas 提供各种类型的合并,包括 INNER、LEFT、RIGHT 和 FULL OUTER 连接。
基本联接类型
a。 INNER JOIN
示例:
left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)}) right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)}) left.merge(right, on='key')
b. LEFT OUTER JOIN
示例:
left.merge(right, on='key', how='left')
c. RIGHT OUTER JOIN
示例:
left.merge(right, on='key', how='right')
d. FULL OUTER JOIN
示例:
left.merge(right, on='key', how='outer')
排除数据左/右排除连接
如果您需要排除特定行,您可以通过首先执行左/右外部连接并过滤以排除特定行,从而执行左排除或右排除连接其他 DataFrame。
e。左排除 JOIN
示例:
(left.merge(right, on='key', how='left', indicator=True) .query('_merge == "left_only"') .drop('_merge', 1))
f.右排除 JOIN
示例:
(left.merge(right, on='key', how='right', indicator=True) .query('_merge == "right_only"') .drop('_merge', 1))
g。 ANTI JOIN
示例:
(left.merge(right, on='key', how='outer', indicator=True) .query('_merge != "both"') .drop('_merge', 1))
处理重复密钥列
为了避免输出中出现重复的键列,您可以在合并之前设置适当的索引作为键:
left3 = left2.set_index('keyLeft') left3.merge(right2, left_index=True, right_on='keyRight')
合并多个列
要连接多列,请指定 on 的列表(或 left_on 和 right_on,如
left.merge(right, on=['key1', 'key2'] ...)
附加合并函数
有关更具体的示例和案例,请参阅有关合并、连接和连接的文档。
以上是Pandas DataFrame 如何使用不同的连接类型进行合并?的详细内容。更多信息请关注PHP中文网其他相关文章!