Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在覆盖现有数据的同时将df写入工作表?_Python_Pandas_Openpyxl - Fatal编程技术网

Python 如何在覆盖现有数据的同时将df写入工作表?

Python 如何在覆盖现有数据的同时将df写入工作表?,python,pandas,openpyxl,Python,Pandas,Openpyxl,我目前正在使用Pandas将数据帧写入特定的工作表,但它不会删除“旧”数据。它只是写在上面 这意味着如果我的数据框是5行,但旧数据是10行。然后我将覆盖前5行,但旧数据仍保留在其余行中 如何修改此代码以覆盖整个指定的工作表 我有来自工作表的报表馈送的数据,因此很遗憾,我无法删除行或创建新工作表 book = load_workbook(workbookname) writer = pd.ExcelWriter(workbookname, engine='openpyxl') writer.boo

我目前正在使用Pandas将数据帧写入特定的工作表,但它不会删除“旧”数据。它只是写在上面

这意味着如果我的数据框是5行,但旧数据是10行。然后我将覆盖前5行,但旧数据仍保留在其余行中

如何修改此代码以覆盖整个指定的工作表

我有来自工作表的报表馈送的数据,因此很遗憾,我无法删除行或创建新工作表

book = load_workbook(workbookname)
writer = pd.ExcelWriter(workbookname, engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(writer, "SheetName")

writer.save()

如果您有一个现有数据框,希望在不重新创建列信息的情况下清空该数据框:

df_empty = df[0:0]
df_empty是一个具有零行但与df具有相同列结构的数据帧


您也可以使用此或从Pandas中删除来删除表中的行。

您建议如何将其合并到我的上述代码中?我已经成功地做到了,但这并不能解决覆盖问题,因为我基本上是想用一个空的0:0 DataFrame覆盖数据,这并不能回答问题。直接在openpyxl中进行。你能给我一个例子吗?