首页  >  文章  >  后端开发  >  如何使用 Pandas 将新工作表添加到现有 Excel 文件?

如何使用 Pandas 将新工作表添加到现有 Excel 文件?

Barbara Streisand
Barbara Streisand原创
2024-11-03 07:06:301043浏览

How to Add New Sheets to an Existing Excel File Using Pandas?

使用 Pandas 在现有 Excel 文件中生成新工作表

在 Python 中处理 Excel 数据时,用户可能会遇到将新工作表保存到现有 Excel 文件的挑战。本指南提供了使用 Pandas 库的解决方案,涵盖了“xlsxwriter”引擎的限制和“openpyxl”引擎的实现。

理解问题

在给定的代码中,用户创建一个包含两个工作表“x1”和“x2”的 Excel 文件。但是,尝试添加新工作表“x3”和“x4”会覆盖原始数据。发生这种情况的原因是“xlsxwriter”引擎仅将数据保存到新文件或覆盖现有文件。

使用“openpyxl”引擎的解决方案

要在添加新工作表时保留现有数据,请使用“openpyxl”引擎。以下代码演示了这种方法:

<code class="python">import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)  # Load the existing Excel file
writer = pd.ExcelWriter(path, engine='openpyxl')  # Create a Pandas writer connected to the workbook
writer.book = book  # Assign the workbook to the Pandas writer

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)

df3.to_excel(writer, sheet_name='x3')  # Write the new dataframes to the existing file
df4.to_excel(writer, sheet_name='x4')

writer.close()  # Save the changes to the file</code>

说明

  1. 加载现有 Excel 文件:此行使用以下命令将现有 Excel 文件读取到工作簿对象中load_workbook 函数。
  2. 创建 Pandas writer:这里使用 engine='openpyxl' 参数创建一个 Pandas ExcelWriter,该参数指定使用“openpyxl”引擎。
  3. 将工作簿分配给 writer:writer.book 属性设置为加载的工作簿对象,将 Pandas writer 链接到现有文件。
  4. 生成新文件dataframes:与原始代码类似,创建新的数据帧(“x3”和“x4”)。
  5. 写入新数据帧:新数据帧保存到现有文件中使用 to_excel 方法,指定工作表名称(“x3”和“x4”)。
  6. 保存更改:最后,Pandas writer 所做的更改将保存到 Excel 文件中调用 writer.close() 方法。

WebSocket、ws 和 Dict

在给定链接的建议代码中:

  • WebSocket (ws):指的是加载的工作簿中的每个工作表。
  • ws.title:代表工作簿中特定工作表的名称。
  • Dict:代码使用字典在工作表名称和工作表对象之间创建映射。这允许 Pandas 编写器访问加载的工作簿中的特定工作表。

以上是如何使用 Pandas 将新工作表添加到现有 Excel 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn