如何使用python从excel文件中堆叠数据



我有一个文件夹,里面有越来越多的excel文件,其中包含日常数据。我想创建一个随着文件数量增加而扩展的数据框架。新数据必须叠加在现有数据下,以扩展时间序列,然后将数据框保存到新的excel输出文件中。到目前为止我有这个代码。有些部分工作,我确实得到了一个输出文件,但是它是以随机顺序堆叠的,而不是按照文件夹/目录的顺序堆叠的。

# loop over excel files in cwd                                              
all_data =  pd.DataFrame() # create empty list                             
list = []                                                                  
for f in glob.glob("/Users/xxxx/xxxx/xxxx/Data/*.xlsx"):    
df = pd.read_excel(f, sheet_name= 'data')                              
list.append(df)                                                                                                          
     
all_data = pd.concat(list)

# save the data                                                            
writer = pd.ExcelWriter('output.xlsx')                                     
all_data.to_excel(writer, 'sheet1')                                       
writer.save()                                                             

谢谢

all_data =  pd.DataFrame() # create empty list
list = []
for f in glob.glob("/Users/xxxx/xxxx/xxxx/Data/*.xlsx"):
df = pd.read_excel(f, sheet_name= 'data') 
list.append(df)
all_data = pd.concat(list)
all_data.to_excel("/Users/xxxx/xxxx/xxxx/Data/all_data.xlsx")

假设你有Excel 365,并且文件夹中的所有文件都具有相同的结构,你可以完全避免使用vba,而是使用Power Query指定文件夹作为数据源。结果将是一个表,您可以在每次向文件夹添加文件时刷新。

最新更新