Python-pandas三向联接列上的多个数据框

发布于 2021-02-02 23:15:52

我有3个CSV文件。每个人都有第一列作为人物的(字符串)名称,而每个数据框中的所有其他列都是该人物的属性。

如何将所有三个CSV文档“连接”在一起以创建单个CSV,并且每一行都具有该人的字符串名称的每个唯一值的所有属性?

join()pandas中的函数指定我需要一个多索引,但是我对层次化索引方案与基于单个索引进行联接有何关系感到困惑。

关注者
0
被浏览
91
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    假设进口:

    import pandas as pd
    

    John Galt的答案基本上是一项reduce手术。如果我有几个数据帧,则将它们放在这样的列表中(通过列表推导或循环或其他方式生成):

    dfs = [df0, df1, df2, dfN]
    

    假设它们有一些共同的列,例如name你的示例,我将执行以下操作:

    df_final = reduce(lambda left,right: pd.merge(left,right,on='name'), dfs)
    

    这样,你的代码应该可以与要合并的任意数量的数据框一起使用。

    编辑2016年8月1日:对于使用Python 3的用户:reduce已移入functools。因此,要使用此功能,你首先需要导入该模块:

    from functools import reduce
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看