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

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

Barbara Streisand
Barbara Streisand原创
2025-01-04 00:51:441023浏览

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