【Python】如何使用Pandas将多个Excel文件合并成一个?

使用Pandas将多个Excel文件合并成一个文件的过程涉及几个关键步骤:读取多个Excel文件,将它们的内容合并到一个DataFrame中,然后将结果保存到一个新的Excel文件。下面我会详细解释这个过程,并提供一个完整的例子。

步骤概述

  1. 准备环境:确保安装了pandasopenpyxl(用于处理.xlsx文件)。
  2. 读取多个Excel文件:遍历文件目录,读取所有相关的Excel文件。
  3. 合并数据:使用Pandas的concat函数将所有读取的数据合并到一个DataFrame中。
  4. 保存合并后的数据:将合并后的DataFrame保存到一个新的Excel文件中。

安装所需库

确保安装了pandasopenpyxl库。如果没有安装,可以通过pip来安装它们:

pip install pandas openpyxl

例子

假设我们有一系列销售数据文件,每个文件对应一个月的数据,文件名格式为YYYY-MM.xlsx(例如2023-01.xlsx, 2023-02.xlsx等),并且所有的文件都放在一个名为sales_data的文件夹中。我们的目标是将这些文件合并成一个单一的Excel文件。

代码实现
import os
import pandas as pd
from pathlib import Path

# 目录路径,包含所有待合并的Excel文件
directory_path = 'sales_data'

# 初始化一个空列表来存储所有的DataFrame
all_dataframes = []

# 遍历目录下的所有文件
for filename in os.listdir(directory_path):
    if filename.endswith('.xlsx'):  # 只处理.xlsx文件
        file_path = Path(directory_path) / filename
        # 读取Excel文件,假设数据在第一个工作表中
        df = pd.read_excel(file_path, engine='openpyxl')
        # 将读取到的DataFrame添加到列表中
        all_dataframes.append(df)

# 合并所有DataFrame
combined_df = pd.concat(all_dataframes, ignore_index=True)

# 保存合并后的DataFrame到新的Excel文件
output_file = 'combined_sales_data.xlsx'
combined_df.to_excel(output_file, index=False, engine='openpyxl')

print(f"合并后的数据已保存到 {output_file}")

例子解释

  1. 准备环境:确保安装了pandasopenpyxl库。
  2. 读取多个Excel文件
  3. 使用os.listdir()列出指定目录下的所有文件。
  4. 对于每个文件,检查文件扩展名是否为.xlsx
  5. 使用pd.read_excel()函数读取每个Excel文件,并将结果存储在一个DataFrame中。
  6. 将每个DataFrame添加到列表all_dataframes中。
  7. 合并数据
  8. 使用pd.concat()函数将列表中的所有DataFrame合并成一个单一的DataFrame。
  9. 参数ignore_index=True确保新DataFrame的索引是连续的。
  10. 保存合并后的数据
  11. 使用to_excel()方法将合并后的DataFrame保存到新的Excel文件中。
  12. 参数index=False表示不保存行索引。
  13. engine='openpyxl'指定了处理.xlsx文件的引擎。

注意事项

  • 如果各个Excel文件的结构(列名和顺序)不一致,合并时可能会遇到问题。在这种情况下,你可能需要在读取文件后进行一些预处理,比如重新排列列或填充缺失的列。
  • 如果文件数量非常多,可能需要考虑内存使用情况,可以分批次处理或使用更高效的数据处理方法。
  • 这个例子展示了如何使用Pandas将多个Excel文件合并成一个。你可以根据实际情况调整文件路径和文件名模式。希望这个例子对你有所帮助!


    🌟 加入【技术图书分享与阅读笔记】,一起遨游知识的星海! 🌟

    在这个快速变化的时代,技术日新月异,唯有不断学习才能保持竞争力。【技术图书分享与阅读笔记】是一个充满活力和热情的学习社区,我们专注于最新的技术趋势和技术图书,致力于为每一位成员提供一个持续成长和交流的平台。

    在这里,你可以:

  • 获取最新技术资讯:我们持续关注前沿技术动态,确保你不会错过任何重要的技术更新。
  • 共同阅读最新技术图书:每月精选一本高质量的技术书籍,与志同道合的朋友一起阅读、讨论,共同进步。
  • 分享学习笔记和心得:定期更新学习笔记和心得,帮助你更好地理解和吸收知识。
  • 互动交流,共同成长:与来自各行各业的技术爱好者交流经验,互相激励,共同解决学习中的难题。
  • 无论你是技术新手还是资深开发者,【技术图书分享与阅读笔记】都欢迎你的加入!让我们一起探索技术的奥秘,享受学习的乐趣,共同在知识的星海中遨游!

    👉 立即加入我们,开启你的学习之旅吧!

    作者:七魔心

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】如何使用Pandas将多个Excel文件合并成一个?

    发表回复