在python中一起附加多个Excel文件(xlsx)

use*_*872 5 python excel merge pandas data-science

import pandas as pd
import os
import glob


all_data = pd.DataFrame()
for f in glob.glob("output/test*.xlsx")
    df = pd.read_excel(f)
    all_data = all_data.append(df, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

我想将多个xlsx文件放入一个xlsx中.excel文件位于输出/测试文件夹中.列是相同的,但我希望连续行.上面的代码似乎不起作用

cs9*_*s95 8

让我们all_data成为一个清单.

all_data = []
for f in glob.glob("output/test/*.xlsx"):
    all_data.append(pd.read_excel(f))
Run Code Online (Sandbox Code Playgroud)

现在,致电pd.concat:

df = pd.concat(all_data, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

确保所有列名都相同,否则此解决方案将不起作用.


您还可以使用上面mapfor循环版本:

g = map(pd.read_excel, glob.glob("output/test/*.xlsx"))
df = pd.concat(list(g), ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

或者列表comprhension方法如另一个答案所示.


jez*_*ael 5

使用list comprehension+ concat

all_data = [pd.read_excel(f) for f in glob.glob("output/test/*.xlsx")]
df = pd.concat(all_data, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)