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

如何使用 Pandas 将新工作表添加到现有 Excel 文件而不覆盖现有数据?

Linda Hamilton
Linda Hamilton原创
2024-11-02 23:33:29996浏览

How Can I Add New Sheets to an Existing Excel File Using Pandas Without Overwriting Existing Data?

使用 Pandas 在现有 Excel 文件中保存新工作表

您的目标是将 Python 处理的数据存储在 Excel 电子表格中,但在添加新工作表时遇到挑战到现有文件。提供的代码引起了对覆盖原始数据的担忧。

背景

要创建新的 Excel 工作表并保留现有的 Excel 工作表,有两个选项可用:

xlsxwriter

代码使用 'xlsxwriter' 作为引擎来创建和保存 Excel 文件。但是,将后续工作表添加到同一文件中会覆盖之前的工作表。

openpyxl

为了克服这个问题,可以使用“openpyxl”作为引擎。它允许附加新工作表而不会丢失现有数据。

使用 openpyxl 实现

  1. 使用“load_workbook”加载现有 Excel 文件。
  2. 创建一个以“openpyxl”为引擎的 ExcelWriter 对象。
  3. 将加载的工作簿分配给 ExcelWriter 的“book”属性。
  4. 将新的 DataFrame 写入所需的工作表。
  5. 关闭ExcelWriter以保存更改。
<code class="python">path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book

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')
df4.to_excel(writer, sheet_name='x4')
writer.close()</code>

理解代码

  • ws.title代表加载的工作簿中每个工作表的工作表标题。
  • ws 表示每个工作表对象。
  • dict 用于创建一个字典,其中每个键是工作表标题,对应的值是工作表对象。

示例

提供的示例演示了如何生成 Excel 文件,然后附加两个附加文件不丢失原始数据的表。

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

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