Python實現(xiàn)合并多個Excel文件中的指定sheet
本文將介紹一個用于合并多個Excel文件中指定sheet的Python代碼。這個功能可以方便地整理和分析數(shù)據(jù)。我們將逐步解釋代碼的每個部分,并提供示例用法。
導入庫
首先,我們導入了需要使用的三個庫:os
、pandas
和time
。這些庫分別用于操作文件和文件夾、處理Excel文件以及計算程序執(zhí)行時間。
import os import pandas as pd import time
定義函數(shù)
我們定義了一個名為merge_excel_sheets
的函數(shù),用于將多個Excel文件中的指定sheet合并到一個新的Excel文件中。該函數(shù)接受三個參數(shù):folder_path
(文件夾路徑)、excel_list
(包含要合并的Excel文件和sheet名的列表)和output_file
(輸出文件路徑)。
def merge_excel_sheets(folder_path, excel_list, output_file): start_time = time.time() with pd.ExcelWriter(output_file) as writer: for excel_name, sheet_name in excel_list: file_path = os.path.join(folder_path, excel_name) df = pd.read_excel(file_path, sheet_name=sheet_name) sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}" df.to_excel(writer, sheet_name=sheet_name_combined, index=False) end_time = time.time() execution_time = end_time - start_time print(f"程序執(zhí)行時間:{execution_time}秒")
在函數(shù)內(nèi)部,我們首先記錄程序開始執(zhí)行的時間。然后,我們使用pd.ExcelWriter
創(chuàng)建一個空的Excel Writer對象,用于寫入合并后的數(shù)據(jù)。
start_time = time.time() with pd.ExcelWriter(output_file) as writer:
接下來,我們使用一個循環(huán)來處理每個Excel文件和sheet。對于每個文件和sheet,我們構造完整的文件路徑,并使用pd.read_excel
讀取數(shù)據(jù)并存儲為DataFrame對象。
for excel_name, sheet_name in excel_list: file_path = os.path.join(folder_path, excel_name) df = pd.read_excel(file_path, sheet_name=sheet_name)
然后,我們構造合并后的sheet名稱,格式為"原文件名-原sheet名",并使用df.to_excel
將DataFrame對象中的數(shù)據(jù)寫入到指定的sheet中。
sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}" df.to_excel(writer, sheet_name=sheet_name_combined, index=False)
最后,我們計算程序執(zhí)行的時間,并將其打印出來。
end_time = time.time() execution_time = end_time - start_time print(f"程序執(zhí)行時間:{execution_time}秒")
示例用法
我們提供了一個示例用法,包括文件夾路徑、要合并的Excel文件和sheet的列表,以及輸出文件路徑。通過調(diào)用merge_excel_sheets
函數(shù),我們可以執(zhí)行合并操作。
folder_path = "E:\\工作內(nèi)容" excel_list = [ ("一店9月.xlsx", "原始數(shù)據(jù)"), ("二店9月.xlsx", "原始"), ("三店9月.xlsx", "原始數(shù)據(jù)"), ("四店9月.xlsx", "原始數(shù)據(jù)"), ("五店9月-離職.xlsx", "原始數(shù)據(jù)") ] output_file = os.path.join(folder_path, "output.xlsx") merge_excel_sheets(folder_path, excel_list, output_file)
完整代碼
import os import pandas as pd # 導入pandas庫 import time # 導入時間庫,用于計算程序執(zhí)行時間 def merge_excel_sheets(folder_path, excel_list, output_file): start_time = time.time() # 記錄程序開始執(zhí)行的時間 # 創(chuàng)建一個空的Excel Writer對象,用于寫入合并后的數(shù)據(jù) with pd.ExcelWriter(output_file) as writer: # 循環(huán)處理每個Excel文件和sheet for excel_name, sheet_name in excel_list: # 根據(jù)文件名和文件夾路徑,構造完整的文件路徑 file_path = os.path.join(folder_path, excel_name) # 讀取指定Excel文件中指定sheet的數(shù)據(jù),并存儲為DataFrame類型的對象 df = pd.read_excel(file_path, sheet_name=sheet_name) # 構造合并后的sheet名稱,格式為"原文件名-原sheet名" sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}" # 將DataFrame對象中的數(shù)據(jù)寫入到指定sheet中 df.to_excel(writer, sheet_name=sheet_name_combined, index=False) end_time = time.time() # 記錄程序結束執(zhí)行的時間 execution_time = end_time - start_time # 計算程序執(zhí)行的時間 print(f"程序執(zhí)行時間:{execution_time}秒") # 輸出程序執(zhí)行的時間 # 示例用法 folder_path = "E:\\工作內(nèi)容" excel_list = [ ("一店9月.xlsx", "原始數(shù)據(jù)"), ("二店9月.xlsx", "原始"), ("三店9月.xlsx", "原始數(shù)據(jù)"), ("四店9月.xlsx", "原始數(shù)據(jù)"), ("五店9月-離職.xlsx", "原始數(shù)據(jù)") ] output_file = os.path.join(folder_path, "output.xlsx") merge_excel_sheets(folder_path, excel_list, output_file) # 調(diào)用合并函數(shù),將指定的Excel文件中指定sheet的數(shù)據(jù)進行合并
到此這篇關于Python實現(xiàn)合并多個Excel文件中的指定sheet的文章就介紹到這了,更多相關Python合并Excel中指定sheet內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python pandas cumsum求累計次數(shù)的用法
這篇文章主要介紹了python pandas cumsum求累計次數(shù)的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07Python爬蟲爬取電影票房數(shù)據(jù)及圖表展示操作示例
這篇文章主要介紹了Python爬蟲爬取電影票房數(shù)據(jù)及圖表展示操作,結合實例形式分析了Python爬蟲爬取、解析電影票房數(shù)據(jù)并進行圖表展示操作相關實現(xiàn)技巧,需要的朋友可以參考下2020-03-03Django Admin實現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))
多級菜單在很多上面都有應用,這篇文章主要介紹了Django Admin實現(xiàn)三級聯(lián)動(省市區(qū)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Python urllib、urllib2、httplib抓取網(wǎng)頁代碼實例
這篇文章主要介紹了Python urllib、urllib2、httplib抓取網(wǎng)頁代碼實例,本文直接給出demo代碼,代碼中包含詳細注釋,需要的朋友可以參考下2015-05-05一文輕松掌握python語言命名規(guī)范規(guī)則
這篇文章主要介紹了一文輕松掌握python語言命名規(guī)范規(guī)則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06