Excel:快速合併多張表格或多個文件(工作簿)的數據(附Python代碼)

Excel:快速合併多張表格或多個文件(工作簿)的數據(附Python代碼)

現實工作中經常遇到將零散的原始數據合併統計的工作要求,如月度統計或年度統計等。原始數據的收集大多是按時間(如日期或小時)進行獲取記錄的,即每1天或1個時間段就會產生1張Excel的數據表格,當要進行月度或年度數據分析時,傳統方法就需要花費不少的時間進行原始數據的合併,俗稱“copy_paste"操作。下面的方法是應用Python代碼實現快速合併多張表格的數據的任務 – "一鍵成型“,大大提高辦公室的工作效率:

流程分析:

  1. 收集數據源文件夾中的數據文件名稱(workbook_names)
  2. 建立新的數據彙總文件 – 用於收集並保存所有的數據
  3. 打開並讀取Excel文件,收集每個數據文件中的表格名稱(sheet_names)
  4. 按表格將數據轉換爲dataframe,並彙總在一起
  5. 將dataframe轉爲Excel文件
  6. 檢查數據彙總的結果

原始數據的情況:

有2個數據集:Data_1和 Data_2,每個文件有3個表格
在這裏插入圖片描述

Python代碼:

import xlrd
import pandas as pd
import os

# 1. 收集數據源文件夾中的數據文件名稱(workbook_names)
file_dir = "d:/原始數據集"
file_list = os.listdir(file_dir)
print("合併的文件包括:", file_list)

# 2. 建立新的數據彙總文件 -- 用於收集並保存所有的數據
new_file = "d:/彙總數據.xlsx"
new_list = []
sheet_num = 0

# 3.打開並讀取Excel文件,收集每個數據文件中的表格名稱(sheet_names) 
for file in file_list:
    file_path = os.path.join(file_dir, file)   
    wb = xlrd.open_workbook(file_path)
    sheet_names = wb.sheet_names()
    sheet_num += len(sheet_names)   #計算合併的表格的總數

# 4.按表格將數據轉換爲dataframe,並彙總在一起
    for sn in sheet_names:
        dataframe = pd.read_excel(file_path, sheet_name=sn, header=0)
        new_list.append(dataframe)

# 5. 將datafram轉爲excel
df = pd.concat(new_list)
df.to_excel(new_file, sheet_name="Summary")

# 6.檢查數據彙總的結果
print("合併的表格數量:", sheet_num)
print("數據彙總表已生產,請檢查!")

程序運行結果:

在這裏插入圖片描述

數據彙總表格(新生產的):

在這裏插入圖片描述
問題解決了!

溫馨提示:

本博客測試的是xls文件,如果是對於xlsx文件,建議使用openpyxl來操作。關鍵替換代碼如下:

import openpyxl

# 讀取excel文件和提取文件中的工作表名稱
wb = openpyxl.load_workbook(file_path)
sheet_names = wb.sheetnames
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章