最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python高效合并Excel多Sheet工作表

 更新時間:2025年09月25日 10:01:55   作者:IT小本本  
在日常辦公中,我們經(jīng)常會遇到一個Excel文件里包含多個工作表的情況,下面小編就來和大家詳細介紹一下如何使用Python實現(xiàn)高效合并Excel多Sheet工作表吧

在日常辦公中,我們經(jīng)常會遇到一個Excel文件里包含多個工作表的情況,比如按日期、按部門分類的數(shù)據(jù)。如果要對這些數(shù)據(jù)進行匯總分析,手動復制粘貼不僅耗時,還容易出現(xiàn)疏漏。

今天就給大家分享一個實用的Python代碼,能一鍵合并Excel中的所有工作表,讓數(shù)據(jù)處理效率大幅提升。

完整代碼

以下是實現(xiàn)該功能的完整代碼,大家可以直接復制使用:

import pandas as pd
import os

def merge_excel_sheets(excel_file_path, output_file_path=None):
    """
    讀取 Excel 文件中的所有 sheet 頁數(shù)據(jù)并匯總到一個 DataFrame 中
    
    參數(shù):
        excel_file_path: Excel 文件路徑
        output_file_path: 輸出的 Excel 文件路徑,默認為 None (不輸出到文件)
    
    返回:
        匯總后的 DataFrame
    """
    # 讀取 Excel 文件中的所有 sheet
    xls = pd.ExcelFile(excel_file_path)
    sheet_names = xls.sheet_names
    
    # 創(chuàng)建一個空的 DataFrame 列表,用于存儲每個 sheet 的數(shù)據(jù)
    dfs = []
    
    # 遍歷每個 sheet
    for sheet_name in sheet_names:
        # 讀取當前 sheet 的數(shù)據(jù)
        df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
        
        # 添加一列標識數(shù)據(jù)來源的 sheet 名稱
        df['Sheet_Name'] = sheet_name
        
        # 將當前 sheet 的 DataFrame 添加到列表中
        dfs.append(df)
    
    # 將所有 DataFrame 合并成一個
    merged_df = pd.concat(dfs, ignore_index=True)
    
    # 如果指定了輸出路徑,則保存到文件
    if output_file_path:
        merged_df.to_excel(output_file_path, index=False)
        print(f"已將匯總數(shù)據(jù)保存到: {output_file_path}")
    
    return merged_df

# 使用示例
if __name__ == "__main__":
    # 替換為你的 Excel 文件路徑
    input_file = "范例1.xlsx"
    output_file = "merged_data.xlsx"
    
    # 確保輸入文件存在
    if os.path.exists(input_file):
        # 匯總數(shù)據(jù)并保存到新文件
        result_df = merge_excel_sheets(input_file, output_file)
        
        # 打印匯總結(jié)果的前幾行
        print("匯總數(shù)據(jù)預(yù)覽:")
        print(result_df.head())
        
        # 打印每個 sheet 的行數(shù)統(tǒng)計
        print("\n各 Sheet 數(shù)據(jù)行數(shù):")
        sheet_counts = result_df['Sheet_Name'].value_counts()
        for sheet, count in sheet_counts.items():
            print(f"{sheet}: {count} 行")
            
        print(f"\n總計: {len(result_df)} 行數(shù)據(jù)")
    else:
        print(f"文件不存在: {input_file}")

代碼解析

1. 依賴庫導入

代碼開頭導入了兩個必要的庫:

  • pandas:強大的數(shù)據(jù)處理庫,用于讀取Excel文件和處理數(shù)據(jù)
  • os:用于進行文件路徑相關(guān)的操作,這里主要用來檢查輸入文件是否存在

2. 核心函數(shù):merge_excel_sheets

這是實現(xiàn)數(shù)據(jù)合并的核心函數(shù),我們來逐步解析其工作流程:

步驟1:獲取所有工作表名稱xls = pd.ExcelFile(excel_file_path)

sheet_names = xls.sheet_names通過pd.ExcelFile方法讀取Excel文件,再通過sheet_names屬性獲取該文件中所有工作表的名稱,為后續(xù)遍歷做準備。

步驟2:遍歷處理每個工作表for sheet_name in sheet_names:

    df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
    df['Sheet_Name'] = sheet_name
    dfs.append(df)- 循環(huán)遍歷每個工作表名稱,使用`pd.read_excel`讀取對應(yīng)工作表的數(shù)據(jù),得到一個DataFrame
  • 為當前DataFrame添加一個Sheet_Name列,記錄該數(shù)據(jù)來自哪個工作表,方便后續(xù)溯源
  • 將處理好的DataFrame添加到列表dfs中暫存

步驟3:合并所有數(shù)據(jù)

merged_df = pd.concat(dfs, ignore_index=True)

使用`pd.concat`方法將列表中所有的DataFrame合并成一個,`ignore_index=True`表示合并后重新生成索引,避免索引重復。

步驟4:保存合并結(jié)果(可選)if output_file_path:

    merged_df.to_excel(output_file_path, index=False)
    print(f"已將匯總數(shù)據(jù)保存到: {output_file_path}")

如果指定了輸出文件路徑,就將合并后的DataFrame保存為Excel文件,`index=False`表示不保存索引列。

3. 使用示例

代碼最后部分是使用示例,主要做了這些事:

  • 定義輸入文件和輸出文件的路徑
  • 檢查輸入文件是否存在,避免報錯
  • 調(diào)用合并函數(shù)進行數(shù)據(jù)處理
  • 輸出合并結(jié)果的預(yù)覽、各工作表數(shù)據(jù)行數(shù)統(tǒng)計和總數(shù)據(jù)量

如何使用該代碼

1.安裝依賴庫:首先確保安裝了pandas庫,如果沒有安裝,可運行以下命令:

pip install pandas openpyxl

openpyxl是pandas處理xlsx格式文件所需的依賴)

2.準備Excel文件:將需要合并的Excel文件準備好,記住其路徑。

3.修改文件路徑:在代碼的if __name__ == "__main__":部分,將input_fileoutput_file替換為實際的文件路徑,例如:

input_file = "C:/data/各部門數(shù)據(jù).xlsx"
output_file = "C:/data/全公司數(shù)據(jù)匯總.xlsx"

4.運行代碼:執(zhí)行Python腳本,等待程序運行完成。運行成功后,會在控制臺輸出匯總數(shù)據(jù)預(yù)覽和統(tǒng)計信息,同時在指定路徑生成合并后的Excel文件。

有了這個代碼,再也不用手動一個個復制粘貼工作表數(shù)據(jù)了,尤其適合需要經(jīng)常處理多工作表Excel文件的辦公人士。

到此這篇關(guān)于Python高效合并Excel多Sheet工作表的文章就介紹到這了,更多相關(guān)Python合并Excel工作表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

哈尔滨市| 黑水县| 新宁县| 北票市| 达孜县| 台南县| 崇明县| 库伦旗| 肇东市| 舞钢市| 通州区| 宣城市| 社旗县| 阳山县| 湛江市| 仪陇县| 上饶市| 大田县| 东山县| 高邮市| 涟水县| 蒙城县| 诸暨市| 隆德县| 澄江县| 平江县| 晋州市| 雷州市| 塘沽区| 娄底市| 高阳县| 防城港市| 五原县| 沾益县| 织金县| 杭州市| 和平县| 河曲县| 沾化县| 绥德县| 内丘县|