如何使用 Python 合并多个 Excel 文件

在当今数据驱动的环境中,整合分散在多个 Excel 文件中的信息是一项常见的挑战。幸运的是,Python 提供了强大的工具来简化此过程,提供了一种更有效的方式来合并和组织数据。在本指南中,我们将探讨如何利用 Python 的功能轻松地将多个 Excel 文件组合成一个有凝聚力的结构化数据集。

花椒壳-愿您平安健康 - 花椒壳资源网

在数据世界中,当您拥有多个具有相同列的 Excel 文件时,事情会变得混乱。如果您想将它们全部整理并合并到一个文件中,尤其是当您需要一一浏览它们时,那么您来对地方了。本指南将向您展示一种简单的方法来理解这一切并保持您的数据井井有条。

 Python 解决方案

使用此 Python 代码轻松合并多个 Excel 文件!🚀 使用 pandas 和 os,该脚本在指定文件夹中的文件中导航,并将它们组合成一个整洁的 merged_excel.xlsx 文件。

只需插入您的文件夹路径,运行代码,瞧 - 简化数据!

# import packages

import pandas as pd

import os

# Define a function 'append' to merge Excel files in a specified path

def append(path):

    # Create an empty list to store individual DataFrames   

    frames = []   

    for root, dirs, files in os.walk(path):       

        for file in files:           

                file_with_path = os.path.join(root, file)         

                df = pd.read_excel(file_with_path)     

                frames.append(df)   

    df = pd.concat(frames, axis=0)   

    return df

# path:The folder path where storage all the excel files 

df = append(path)  

df.to_excel("merged_excel.xlsx")

在此代码片段中,我们使用了两个强大的工具:pandas 和 os(用于处理操作系统的模块)。

append 函数是这里的明星。它挖掘指定文件夹('path')中的所有 Excel 文件并将它们收集到一个 DataFrame 中,这就像一个整洁的数据表。

现在,神奇的时刻来了:最后两行!他们使用我们的 append 函数将指定文件夹中的所有 Excel 数据合并到一个名为 merged_excel.xlsx 的合并文件中。


奖励:处理独特的数据情况

虽然我们已经探索了简单数据合并的解决方案,但让我们稍微绕道以解决更细微的场景。

想象一下:您的 Excel 文件的名称中带有不同的日期,不仅需要合并,还需要深思熟虑地集成到最终摘要中,以便您可以知道最终版本中数据的日期。

情况 1:数据驱动的 Excel 文件名:制作全面的摘要 Excel

例如,如果文件名遵循类似 “filename_YYYY-MM-DD.xlsx” 的模式,并且您希望同时提取日期和文件名,则可以按如下方式调整代码:

import pandas as pd

import os

def append(path):

    frames = []  # Create an empty list to store individual DataFrames

    for root, dirs, files in os.walk(path):

        for file in files:

            file_with_path = os.path.join(root, file)

            # Extract filename and date information from the file name

            file_info = os.path.splitext(file)[0].split('_')

            # Read each Excel file using pandas

            df = pd.read_excel(file_with_path)

            # Add filename and date columns to the DataFrame

            df["filename"] = file_info[0]  # Assuming filename is the first part

            df["date"] = pd.to_datetime(file_info[1])  # Assuming date is the second part

            # Append the DataFrame to the list

            frames.append(df)

    # Concatenate all DataFrames in the list along the rows

    df = pd.concat(frames, axis=0)

    return df

花椒壳-愿您平安健康 - 花椒壳资源网花椒壳资源网,资源下载,主要提供资源、设计素材、音乐、视频、图片等一切与互联网有关的资源icon-default.png?t=O83Ahttps://www.xinliu.vip

情况 2:简化数据:将多个 Excel 文件合并为一个文件,并为每个文件命名不同的工作表

现在,让我们转向另一个场景。假设您的目标是一个合并的主文件,但有一个变化 - 每个文件都贡献到一个单独的工作表中,该工作表以其原始文件命名。

import pandas as pd

import os

def combine(path):

    with pd.ExcelWriter("merged_excel.xlsx") as writer:

        for root, dirs, files in os.walk(path):

            for file in files:

                filename = os.path.join(root, file)

                df = pd.read_excel(filename)

                # Delete the file name suffix, sometimes it could be xlsv/.xlsx

                df.to_excel(writer, sheet_name=file.strip(

                    '.csv'))  

        return df

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值