基于列对 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中文网其他相关文章!