Pandas+openpyxl进行Excel处理详解

 更新时间:2025年02月07日 08:42:59   作者:victor66  
这篇文章主要为大家详细介绍了如何使用pandas和openpyxl库对多个Excel文件进行多种处理的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

1. 读取多个 Excel 文件并合并

假设你有一个文件夹,里面包含多个 Excel 文件,你想将这些文件合并成一个 DataFrame。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 创建一个空的 DataFrame 来存储所有数据
all_data = pd.DataFrame()
# 逐个读取每个 Excel 文件并将数据追加到 all_data 中
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    all_data = pd.concat([all_data, df], ignore_index=True)
# 查看合并后的数据
print(all_data.head())

2. 批量处理多个 Excel 文件

假设你需要对多个 Excel 文件进行相同的处理(例如,添加一列、过滤数据等)。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_folder = 'path/to/output/folder'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 处理每个 Excel 文件
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    # 添加一列
    df['New_Column'] = 'Some Value'
    # 过滤数据
    filtered_df = df[df['Some_Column'] > 100]
    # 保存处理后的数据
    output_file_path = os.path.join(output_folder, file)
    filtered_df.to_excel(output_file_path, index=False)
print("Processing complete.")

3. 从多个 Excel 文件中提取特定信息

假设你需要从多个 Excel 文件中提取特定的信息(例如,某个特定单元格的数据)。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 存储结果
results = []
# 从每个 Excel 文件中提取特定信息
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    # 假设我们需要提取第一行第一列的数据
    specific_value = df.iloc[0, 0]
    # 将结果存储在一个列表中
    results.append((file, specific_value))
# 打印结果
for file, value in results:
    print(f"File: {file}, Specific Value: {value}")

4. 使用 openpyxl 处理多个 Excel 文件

如果你需要更细粒度地控制 Excel 文件(例如,修改特定单元格、格式化等),可以使用 openpyxl 库。

import openpyxl
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_folder = 'path/to/output/folder'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 处理每个 Excel 文件
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    workbook = openpyxl.load_workbook(file_path)
    sheet = workbook.active
    # 修改特定单元格
    sheet['A1'] = 'New Value'
    # 保存处理后的文件
    output_file_path = os.path.join(output_folder, file)
    workbook.save(output_file_path)
print("Processing complete.")

5. 合并多个 Excel 文件到一个工作簿的不同工作表

假设你有多个 Excel 文件,并希望将它们合并到一个新的 Excel 工作簿中的不同工作表中。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_file = 'merged_workbook.xlsx'
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 创建一个新的 ExcelWriter 对象
with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
    # 处理每个 Excel 文件并将数据写入不同的工作表
    for file in excel_files:
        file_path = os.path.join(folder_path, file)
        df = pd.read_excel(file_path)
        # 使用文件名作为工作表名称
        sheet_name = os.path.splitext(file)[0]
        # 写入数据
        df.to_excel(writer, sheet_name=sheet_name, index=False)
print("Merging complete.")

6. 批量处理多个 Excel 文件并进行数据清洗

假设你需要对多个 Excel 文件进行数据清洗,例如删除空行、填充缺失值等。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_folder = 'path/to/output/folder'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 处理每个 Excel 文件
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    # 删除空行
    df.dropna(how='all', inplace=True)
    # 填充缺失值
    df.fillna(0, inplace=True)
    # 保存处理后的数据
    output_file_path = os.path.join(output_folder, file)
    df.to_excel(output_file_path, index=False)
print("Data cleaning complete.")

7. 从多个 Excel 文件中提取特定列并合并

假设你需要从多个 Excel 文件中提取特定列,并将这些列合并成一个新的 DataFrame。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 创建一个空的 DataFrame 来存储所有数据
all_data = pd.DataFrame()
# 逐个读取每个 Excel 文件并提取特定列
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path, usecols=['Column1', 'Column2'])
    # 将提取的数据追加到 all_data 中
    all_data = pd.concat([all_data, df], ignore_index=True)
# 查看合并后的数据
print(all_data.head())

8. 批量重命名多个 Excel 文件中的工作表

假设你需要批量重命名多个 Excel 文件中的工作表名称。

import openpyxl
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_folder = 'path/to/output/folder'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 处理每个 Excel 文件
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    workbook = openpyxl.load_workbook(file_path)
    # 重命名工作表
    if 'OldSheetName' in workbook.sheetnames:
        sheet = workbook['OldSheetName']
        sheet.title = 'NewSheetName'
    # 保存处理后的文件
    output_file_path = os.path.join(output_folder, file)
    workbook.save(output_file_path)
print("Sheet renaming complete.")

9. 批量导出 Excel 数据到 CSV 文件

假设你需要将多个 Excel 文件中的数据批量导出为 CSV 文件。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
output_folder = 'path/to/output/csvs'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 处理每个 Excel 文件
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    # 生成输出文件路径
    base_name = os.path.splitext(file)[0]
    output_file_path = os.path.join(output_folder, f'{base_name}.csv')
    # 导出为 CSV 文件
    df.to_csv(output_file_path, index=False)
print("Export to CSV complete.")

10. 批量处理多个 Excel 文件并进行数据分析

假设你需要对多个 Excel 文件进行数据分析,例如计算总和、平均值等。

import pandas as pd
import os
# 文件夹路径
folder_path = 'path/to/your/excel/files'
# 获取文件夹中的所有 Excel 文件
excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 创建一个空的 DataFrame 来存储所有数据
all_data = pd.DataFrame()
# 逐个读取每个 Excel 文件并将数据追加到 all_data 中
for file in excel_files:
    file_path = os.path.join(folder_path, file)
    df = pd.read_excel(file_path)
    # 将数据追加到 all_data 中
    all_data = pd.concat([all_data, df], ignore_index=True)
# 进行数据分析
total_sum = all_data['Some_Column'].sum()
average_value = all_data['Some_Column'].mean()
# 打印结果
print(f"Total Sum: {total_sum}")
print(f"Average Value: {average_value}")

到此这篇关于Pandas+openpyxl进行Excel处理详解的文章就介绍到这了,更多相关Pandas openpyxl处理Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python多维列表总是只转为一维数组问题解决

    python多维列表总是只转为一维数组问题解决

    这篇文章主要为大家介绍了python多维列表总是只转为一维数组问题解决实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • pyhton列表转换为数组的实例

    pyhton列表转换为数组的实例

    下面小编就为大家分享一篇pyhton列表转换为数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python实现将列表导出为Excel文件

    Python实现将列表导出为Excel文件

    在 Python 数据处理场景中,将列表(List)数据导出为 Excel 文件是高频需求,本文将演示如何用 Free Spire.XLS for Python 实现列表转 Excel,感兴趣的小伙伴可以了解下
    2025-12-12
  • python中b=a和b=a[:]区别小结

    python中b=a和b=a[:]区别小结

    Python中b = a和b = a[:]有显著区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • python Tcp协议发送和接收信息的例子

    python Tcp协议发送和接收信息的例子

    今天小编就为大家分享一篇python Tcp协议发送和接收信息的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python SQLAlchemy建立模型基础关系模式过程详解

    Python SQLAlchemy建立模型基础关系模式过程详解

    SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQL数据库的量级和性能重要于对象集合
    2022-12-12
  • kNN算法python实现和简单数字识别的方法

    kNN算法python实现和简单数字识别的方法

    这篇文章主要介绍了kNN算法python实现和简单数字识别的方法,详细讲述了kNN算法的优缺点及原理,并给出了应用实例,需要的朋友可以参考下
    2014-11-11
  • 最好的Python DateTime 库之 Pendulum 长篇解析

    最好的Python DateTime 库之 Pendulum 长篇解析

    datetime 模块是 Python 中最重要的内置模块之一,它为实际编程问题提供许多开箱即用的解决方案,非常灵活和强大。例如,timedelta 是我最喜欢的工具之一
    2021-11-11
  • 详解OpenCV执行连通分量标记的方法和分析

    详解OpenCV执行连通分量标记的方法和分析

    在本教程中,您将学习如何使用 OpenCV 执行连通分量标记和分析。具体来说,我们将重点介绍 OpenCV 最常用的连通分量标记函数:cv2.connectedComponentsWithStats,感兴趣的可以了解一下
    2022-08-08
  • Python之京东商品秒杀的实现示例

    Python之京东商品秒杀的实现示例

    这篇文章主要介绍了Python之京东商品秒杀的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论