2017-07-21 71 views
0

我正在嘗試pd.merge將同一目錄中的所有文件合併到一個文件中。下面是輸入的例子,它們是在同一目錄的Excel文件:pandas合併同一目錄中的所有文件

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只適用於合併兩個文件?

感謝您的幫助!

+0

pd.merge使用pd.concat,索引集需要dataframes不是文件名。 – Zero

+1

將文件讀入列表pd.concat而不是'merge',PS:將A設置爲索引 – Wen

+0

@JohnGalt thx以供您提醒,這是有幫助的一點。 – Kay

回答

1

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 
相關問題