当前位置: 首页 > 面试题库 >

如何使用Pandas将新工作表保存在现有的Excel文件中?

公良文彬
2023-03-14
问题内容

我想使用Excel文件来存储用python制作的数据。我的问题是我无法将图纸添加到现有的excel文件中。在这里,我建议使用示例代码来解决此问题

import pandas as pd
import numpy as np

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

x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()

此代码将两个DataFrame保存到两个表中,分别命名为“ x1”和“ x2”。如果创建两个新的DataFrame并尝试使用相同的代码添加两个新的工作表“
x3”和“ x4”,则原始数据将丢失。

import pandas as pd
import numpy as np

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

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

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

writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df3.to_excel(writer, sheet_name = 'x3')
df4.to_excel(writer, sheet_name = 'x4')
writer.save()
writer.close()

我想要一个具有四张纸的Excel文件:“ x1”,“ x2”,“ x3”,“ x4”。我知道“ xlsxwriter”不是唯一的“引擎”,而是“
openpyxl”。我还看到已经有其他人对此问题进行了写作,但是我仍然不知道如何做到这一点。

这是从此链接获取的代码

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

他们说这行得通,但是很难弄清楚是怎么回事。我不了解在此上下文中的“ ws.title”,“ ws”和“ dict”是什么。

保存“ x1”和“ x2”,然后关闭文件,再次打开并添加“ x3”和“ x4”的最佳方法是什么?


问题答案:

谢谢。我相信,一个完整的示例可能会对遇到相同问题的其他人有所帮助:

import pandas as pd
import numpy as np

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

x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()

根据我的理解,在这里我生成一个excel文件,无论它是通过“ xslxwriter”还是“ openpyxl”引擎生成的,都没有关系。

当我想写而不丢失原始数据时

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)
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.save()
writer.close()

此代码可以完成工作!



 类似资料:
  • 我试图将列表数据写入一个工作簿中的多个excel表格。与第一个列表一样,代码将创建新工作簿并为列表[1]创建新工作表,对于第二个列表,它将在现有工作簿中创建新工作表,依此类推。所以我写了下面的代码。但是它不起作用,我只能看到列表[1]的第一页。有人能帮我提供任何替代解决方案吗? 下面我写的代码 谢谢,Priyank Shah

  • 问题内容: 新版本的Pandas使用以下界面加载Excel文件: 但是,如果我不知道可用的图纸怎么办? 例如,我正在使用以下工作表的excel文件 数据1,数据2 …,数据N,foo,bar 但我不知道先验。 有什么方法可以从Pandas的Excel文档中获取工作表列表吗? 问题答案: 您仍然可以使用ExcelFile类(和属性): 有关更多选项, 请参阅文档以进行解析…

  • 问题内容: 我想向现有的Excel文件中添加工作表。我怎样才能做到这一点?我正在研究一个selenium项目,我想将所有自动化结果表添加到单个excel文件中。现在,我能够为每个工作表创建新的Excel文件。 问题答案: 如果从Java 使用: 分别打开现有工作表或创建新工作表: 要检查工作表是否存在以创建唯一的工作表名称,可以使用如下所示的内容: 然后您可以通过调用添加工作表: 在这种情况下,工

  • 我尝试了各种方式添加Excel电子表格。但问题总是相同的。 我尝试了这里提出的代码, 将工作表添加到现有excel文件 使用Apache POI for Java在现有Excel工作簿中创建新工作表 问题是:

  • 我想将工作表添加到现有的 excel 文件中。我该怎么做?我正在从事一个硒项目,我想将所有自动化结果表添加到单个 excel 文件中。现在,我可以为每个工作表创建新的Excel文件。

  • 我有一个Java方法writeToExcel(String sheetName,Map),它在一个新的excel文件中创建一个名为'sheet name'的新工作表,并将地图数据写入其中。当我使用不同的sheetName参数多次调用该方法时,现有的工作表将被上次调用的工作表替换。我希望每次使用不同的sheetName参数调用该方法时,都在同一个excel文件中创建新的工作表,而不会丢失现有的工作表