使用 Pandas 将新工作表添加到现有 Excel 文件
Pandas 提供了一个方便的界面来处理 Excel 文件。然而,将新工作表保存到现有文件时,用户经常会遇到挑战。本文解决了这个问题并提供了全面的解决方案。
现有代码:
提供的代码将两个 DataFrame 保存到两张表中,但无法在不丢失数据的情况下添加更多表由于关闭 ExcelWriter 对象而产生的原始数据。
最佳方法:
理想的工作流程包括创建 Excel 文件、保存一些数据、关闭 ExcelWriter,然后重新打开它可以添加更多纸张。这种方法可确保数据保存。
Openpyxl 集成:
要附加工作表而不丢失数据,Pandas 可以使用 Openpyxl。 Openpyxl 允许直接操作 Excel 文件。通过使用 load_workbook 加载现有文件并将其设置为 ExcelWriter 的书,我们可以添加新工作表而不影响现有工作表。
完整示例:
这里有一个完整示例:
<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" # Generate initial data x1 = np.random.randn(100, 2) df1 = pd.DataFrame(x1) x2 = np.random.randn(100, 2) df2 = pd.DataFrame(x2) # Write initial sheets writer = pd.ExcelWriter(path, engine='xlsxwriter') df1.to_excel(writer, sheet_name='x1') df2.to_excel(writer, sheet_name='x2') writer.close() # Open existing file and add new sheets book = load_workbook(path) writer = pd.ExcelWriter(path, engine='openpyxl') writer.book = book # Generate new data x3 = np.random.randn(100, 2) df3 = pd.DataFrame(x3) x4 = np.random.randn(100, 2) df4 = pd.DataFrame(x4) # Append new sheets df3.to_excel(writer, sheet_name='x3') df4.to_excel(writer, sheet_name='x4') writer.close()</code>
此代码首先生成两个工作表并关闭 ExcelWriter。然后,它重新打开文件并利用 Openpyxl 添加另外两张表,保留原始数据。
以上是如何使用 Pandas 将新工作表附加到现有 Excel 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!