pandas使用merge函数将多个dataframe数据连接起来、设置how参数为left指定左连接(left join)、on参数指定连接字段

本文介绍了Pandas库中的merge函数,用于将多个DataFrame数据通过指定的连接字段进行左连接(left join)。merge函数允许设置how参数为left,on参数指定连接键。同时,文章对比了merge与concat、join的区别,并详细阐述了merge的各种参数,如left_on、right_on等,以及在数据分析中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas使用merge函数将多个dataframe数据连接起来、设置how参数为left指定左连接(left join)、on参数指定连接字段

目录

pandas使用merge函数将多个dataframe数据连接起来、设置how参数为left指定左连接(left join)、on参数指定连接字段

 #导入包和库

 #pandas使用merge函数将多个dataframe数据连接起来、设置how参数为left指定左连接(left join)、on参数指定连接字段


谈到pandas数据的行更新、表合并等操作,一般用到的方法有concat、join、merge。但这三种方法对于很多新手来说,都不太好分清使用的场合与用途。

Python中merge()函数的表连接功能类似于Excel中实现拼接的vlookup()函数,也类似于关系型数据库的连接方式。merge()可以根据一个或多个键(列值)将不同的DataFrame连接起来。该函数的典型应用场景是,两张不同字段的表存在相同的键,根据键整合到一张表

### pandas库中`merge`函数使用方法 #### 基本概念 `merge()` 函数Pandas 中用于合并两个 `DataFrame` 的强大工具,其功能类似于 SQL 中的 JOIN 操作,可以根据指定的列或索引执行连接操作[^1]。 #### 参数说明 - **left**: 左侧输入对象 (通常是 DataFrame 或 Series)。 - **right**: 右侧输入对象 (同样是 DataFrame 或 Series)。 - **how**: 合并方式,默认为 'inner'。可选参数有 'left', 'right', 'outer', 和 'cross'[^4]。 - **on**: 进行连接的关键字段名;如果未提供,则会尝试自动查找重叠的列名称作为键。 - **left_on** / **right_on**: 当左侧和右侧的数据框具有不同名字但是逻辑上相同的键时使用这些选项来指明它们。 - **suffixes**: 如果存在重复标签,则附加到重叠列上的字符串列表,长度应为2,形如 (`'_x'`, `'y_'`) [^5]。 #### 示例代码展示 ##### 创建测试数据集 ```python import pandas as pd df1 = pd.DataFrame({ 'key': ['K0', 'K1', 'K2'], 'A': ['A0', 'A1', 'A2'] }) df2 = pd.DataFrame({ 'key': ['K0', 'K1', 'K3'], 'B': ['B0', 'B1', 'B3'] }) ``` ##### 内部连接(Inner Join) 仅当两表都有相同 key 时才返回记录。 ```python result_inner = pd.merge(df1, df2, on="key", how="inner") print(result_inner) ``` ##### 左外连接Left Outer Join) 无论右边是否有对应项都保留左边所有的行。 ```python result_left_outer = pd.merge(df1, df2, on="key", how="left") print(result_left_outer) ``` ##### 右外连接(Right Outer Join) 无论左边是否有对应项都保留右边所有的行。 ```python result_right_outer = pd.merge(df1, df2, on="key", how="right") print(result_right_outer) ``` ##### 完全外部连接(Full Outer Join) 即使任一侧都没有匹配也会显示所有记录,在没有找到的地方填充 NaN。 ```python result_full_outer = pd.merge(df1, df2, on="key", how="outer") print(result_full_outer) ``` ##### 笛卡尔积(Cross Join) 不基于任何条件创建两个表格之间的每一对组合。 ```python result_cross_join = pd.merge(df1, df2, how="cross") print(result_cross_join) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

statistics.insight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值