Pandas 在具有多个列的多个数据帧上进行左外连接
在 Pandas 中,合并数据帧是一项常见任务。当执行涉及多个表和多个连接列的连接时,这会变得更加复杂。对于左外连接,我们保留左侧数据帧中的所有行,并填充右侧数据帧中的缺失值。
要将数据帧 df1、df2 和 df3 与多个连接列合并,我们建议分两步进行方法:
第 1 步:合并 df1 和df2
s1 = pd.merge(df1, df2, how='left', on=['Year', 'Week', 'Colour'])
第 2 步:将第 1 步的结果与 df3
合并,因为我们不需要第二次合并的 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中文网其他相关文章!