python - 如何使用 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)
在上面,我试图删除多个标题行,然后我想将数据框覆盖到同一个文件中。
我正在查看文档,似乎无法找到一个简单的解决方案,我可以让它以一种迂回的方式工作。有没有一种简单的方法可以做到这一点?
解决方案
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 循环中
推荐阅读
- mysql - 使用 switch case 更新 MySQL 查询
- inference - TFX Pushed 模型在 BQML 中使用时工作正常,但与 BulkInferrer 一起使用时出错
- java - 在 Spring Security 5 中从 SecurityContext 获取令牌
- javascript - 初始化数组时无法读取未定义的属性“推送”
- c# - 为 EventHandler Unity 订阅静态方法
- javascript - 根据id推送到url的方式
- python - 类属性值不变
- go - 如何解析 Go 中的时间,而没有分隔秒和毫秒的句点?
- java - 如何访问java中另一个包中受保护的getter setter?
- css - React Virtualized CellMeasurer with List 间歇性地给出随机高度