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

时间:2017-10-25 10:55:53

标签: python excel pandas merge 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)

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

2 个答案:

答案 0 :(得分:7)

all_data成为一个列表。

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

现在,请致电pd.concat

df = pd.concat(all_data, ignore_index=True)

确保所有列名都相同,否则此解决方案无法正常工作。

您还可以使用上面map循环的for版本:

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

list comprhension 方法,如另一个答案所示。

答案 1 :(得分:3)

使用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)