起因:
有一批數據需要每個月進行分析,數據存儲在excel中,行標題一致,需要橫向合并進行分析。
數據示意:

具有多個

代碼:
# -*- coding: utf-8 -*-"""Created on Sun Nov 12 11:19:03 2017@author: Li Ying"""#讀取第一列作為合并后表格的第一列from pandas import read_csvdf = read_csv(r'E:/excel/vb/excel1.csv',header=None)sample_name = df[0] file="combine"filedestination = "E://excel//"import glob #from numpy import * filearray=[] for filename in glob.glob(r'E:/excel/*.xlsx'): filearray.append(filename) #以上是從excel 文件夾下讀取所有excel表格,并將所有的名字存儲到列表filearray print("在默認文件夾下有%d個文檔哦"%len(filearray)) ge=len(filearray) matrix = [None]*ge #實現讀寫數據 #下面是將所有文件讀數據到三維列表cell[][][]中(不包含表頭) import xlrdfor i in range(ge): fname=filearray[i] bk=xlrd.open_workbook(fname) try: sh=bk.sheet_by_name("Sheet1") except: print ("在文件%s中沒有找到sheet1,讀取文件數據失敗,要不你換換表格的名字?" %fname) ncols=sh.ncols matrix[i] = [0]*(ncols-1) nrows=sh.nrows for m in range(ncols-1): matrix[i][m] = ["0"]*nrows for k in range(1,ncols): for j in range(0,nrows): matrix[i][k-1][j]=sh.cell(j,k).value import xlwt filename=xlwt.Workbook() sheet=filename.add_sheet("hel") #下面是把第一列寫上 for i in range(0,len(sample_name)): sheet.write(i,0,sample_name[i]) #求和前面的文件一共寫了多少列 zh=1 for i in range(ge): for j in range(len(matrix[i])): for k in range(len(matrix[i][j])): sheet.write(k,zh,matrix[i][j][k]) zh=zh+1 print("我已經將%d個文件合并成1個文件,并命名為%s.xlsx."%(ge,file)) filename.save(filedestination+file+".xls") 合并結果:

以上這篇使用Python橫向合并excel文件的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
|
新聞熱點
疑難解答