代码之家  ›  专栏  ›  技术社区  ›  Lumos

熊猫合并同一目录中的所有文件

  •  0
  • Lumos  · 技术社区  · 7 年前

    pd.merge 将同一目录中的所有文件合并到一个文件。以下是输入示例,它们是同一目录中的excel文件:

    df1:
    A     B     C
    a     1     dog
    b     0     dog
    c     2     cat
    
    df2:
    A     D     E
    a     2     bird
    b     4     lion
    c     1     cat
    
    df3:
    A     F      G
    a     1     seal
    b     20    raccoon
    c     2     squirrel
    

    这是我想要的输出:

    A     B     C      D     E     F     G     
    a     1     dog    2     bird  1     seal
    b     0     dog    4     lion  20    raccoon
    c     2     cat    1     cat   2     squirrel
    

    我的代码:

      files = glob.glob('/Users/files/*.xlsx')
      all_data = pd.merge(files, how='left')
    

    错误:

      TypeError: merge() missing 1 required positional argument: 'right'
    

    merge 仅用于合并两个文件?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Zero    7 年前

    使用 pd.concat ,索引设置为on A

    In [20]: pd.concat(
                [pd.read_excel(f).set_index('A') for f in glob.glob('*.xlsx')],
                axis=1).reset_index()
    Out[20]:
       A  B    C  D     E   F         G
    0  a  1  dog  2  bird   1      seal
    1  b  0  dog  4  lion  20   raccoon
    2  c  2  cat  1   cat   2  squirrel