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

时间:2017-07-21 15:54:24

标签: python pandas merge glob

我试图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 个答案:

答案 0 :(得分:1)

使用pd.concat,在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