首页 > 后端开发 > Python教程 > 如何基于单列执行 Pandas DataFrame 的三向连接?

如何基于单列执行 Pandas DataFrame 的三向连接?

Linda Hamilton
发布: 2024-12-01 05:32:14
原创
871 人浏览过

How to Perform a Three-Way Join of Pandas DataFrames Based on a Single Column?

基于列对 Pandas 数据框执行三向连接

使用不同的数据集时,将它们合并在一起以获得全面的视图可以至关重要。在 Python 的 pandas 库中, join() 函数提供了一种基于公共索引组合多个数据帧的强大方法。

问题:

您拥有三个 CSV 文件,每个包含人名作为第一列和各种属性作为其余列。您的目标是将这些文件“加入”到一个 CSV 中,每一行代表一个唯一的人及其所有属性。

最初, join() 函数意味着需要多重索引。然而,当尝试基于单个索引进行连接时,就会出现混乱。

答案:

要实现所需的三向连接,您可以使用 functools。 reduce 函数,有助于对数据帧进行顺序缩减操作。以下是具体操作方法:

import functools as ft
dfs = [df0, df1, df2, ..., dfN]  # List of dataframes
df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
登录后复制

这种方法允许您基于公共列(例如您的情况下的“名称”)合并任意数量的数据帧。 reduce() 函数迭代地将 pandas merge() 函数应用于列表中的数据帧,从而生成一个名为 df_final 的数据帧,其中包含所有合并的属性数据。

以上是如何基于单列执行 Pandas DataFrame 的三向连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

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