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文件位于输出/测试文件夹中。列是相同的,但我希望连续行。上面的代码似乎无法正常工作
答案 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)