首页 > 数据库 > mysql教程 > 如何在具有多个连接列的多个数据帧之间执行 Pandas 左外连接?

如何在具有多个连接列的多个数据帧之间执行 Pandas 左外连接?

Barbara Streisand
发布: 2025-01-04 00:51:44
原创
1066 人浏览过

How to Perform a Pandas Left Outer Join Across Multiple DataFrames with Multiple Join Columns?

Pandas 在具有多个列的多个数据帧上进行左外连接

在 Pandas 中,合并数据帧是一项常见任务。当执行涉及多个表和多个连接列的连接时,这会变得更加复杂。对于左外连接,我们保留左侧数据帧中的所有行,并填充右侧数据帧中的缺失值。

要将数据帧 df1、df2 和 df3 与多个连接列合并,我们建议分两步进行方法:

第 1 步:合并 df1 和df2

s1 = pd.merge(df1, df2, how='left', on=['Year', 'Week', 'Colour'])
登录后复制

第 2 步:将第 1 步的结果与 df​​3

合并,因为我们不需要第二次合并的 Year 列,我们可以在加入之前将其从 df3 中删除:

df3_dropped = df3.drop('Year', axis=1)
df = pd.merge(s1, df3_dropped, how='left', on=['Week', 'Colour'])
登录后复制

这给了我们所需输出:

   Year Week Colour  Val1  Val2 Val3
0  2014    A    Red    50   NaN  NaN
1  2014    B    Red    60   NaN   60
2  2014    B  Black    70   100   10
3  2014    C    Red    10    20  NaN
4  2014    D  Green    20   NaN   20
登录后复制

以上是如何在具有多个连接列的多个数据帧之间执行 Pandas 左外连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板