首页 > 解决方案 > 如何使用 Pandas 在多表 Excel 工作簿中用新数据框覆盖现有工作表?

问题描述

我有一个xlsx包含多张纸的文件:sheet1, sheet2, sheet3

# Clean up header issues:
xl = pd.ExcelFile(file)
sheets = xl.sheet_names
for i in sheets:
    df = xl.parse(i)
    df = df[df['Symbol'] != 'Symbol']
    df.reset_index(drop=True, inplace=True)

在上面,我试图删除多个标题行,然后我想将数据框覆盖到同一个文件中。

我正在查看文档,似乎无法找到一个简单的解决方案,我可以让它以一种迂回的方式工作。有没有一种简单的方法可以做到这一点?

标签: pythonpandas

解决方案


Pandas 有一个 read_excel 函数,它还为您提供了指定工作表名称的选项。你可以这样做:

import pandas as pd

file = r'C:\...\file.xlsx' #wherever your excel file is
sheets = ['sheet1', 'sheet2'] # whatever and however many you have
df = {}
for sheet in sheets:
    df[sheet] = pd.read_excel(file, sheet_name=sheet)
    df[sheet] = df[sheet][df[sheet]['Symbol'] != 'Symbol']

如果您也想导出它,那么您可以使用 pd.to_excel() 函数添加到 for 循环中


推荐阅读