pandas读取与写入一个 workbook 的多个 sheet

背景:

win8.1, anaconda 4.12, pandas 1.3.4

目的:

1. 一次读取一个workbook中的多个sheet

2. 一次写入一个workbook中的多个sheet

操作:

主要操作步骤如下,具体请参考代码。

1. 一次读取一个workbook中的多个sheet:

multiple_sheets = pd.read_excel("test1.xlsx", ['sheet1','sheet2'])

注意:

读取多个sheet时,返回值 multiple_sheets 的类型不再是 DataFrame,而是dict类型。

而读取一个sheet时,返回值类型是DataFrame.

2. 一次写入一个workbook中的多个sheet:

dataframe1.to_excel(writer, sheet_name1)

dataframe2.to_excel(writer,sheet_name2)

writer.save() #这个必须的

不能用

dataframe1.to_excel("test1.xlsx", sheet_name1) #本身不支持多个sheet的形式[sheet_name1,sheet_name2]。

dataframe2.to_excel("test1.xlsx", sheet_name2) 的形式。用的话,只能得到最后一个sheet_name2的workbook.

例子:

ex1.xlsx的内容

 读取一个workbook的多个sheet

写入一个workbook的多个sheet 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 `openpyxl` 库来实现将 DataFrame 写入到指定的 Excel 文件的指定 Sheet 中,同时保留其他 Sheet 的内容。 首先,需要安装 `openpyxl` 库,可以使用 pip 进行安装: ```python pip install openpyxl ``` 接下来,假设要将 DataFrame 写入到 `example.xlsx` 文件的 `Sheet2` 中,可以按照以下步骤实现: 1. 导入需要的库 ```python import pandas as pd from openpyxl import load_workbook ``` 2. 读取 Excel 文件 ```python # 读取 Excel 文件 book = load_workbook('example.xlsx') ``` 3. 获取 Sheet 对象 ```python # 获取 Sheet 对象 writer = pd.ExcelWriter('example.xlsx', engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) sheetname = 'Sheet2' ws = writer.sheets[sheetname] ``` 4. 将 DataFrame 写入到指定 Sheet ```python # 将 DataFrame 写入到指定 Sheet df.to_excel(writer, sheet_name=sheetname, index=False, header=False, startrow=ws.max_row+1) ``` 最后,记得关闭 writer 对象: ```python writer.save() writer.close() ``` 完整代码如下: ```python import pandas as pd from openpyxl import load_workbook # 读取 Excel 文件 book = load_workbook('example.xlsx') # 获取 Sheet 对象 writer = pd.ExcelWriter('example.xlsx', engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) sheetname = 'Sheet2' ws = writer.sheets[sheetname] # 将 DataFrame 写入到指定 Sheet df.to_excel(writer, sheet_name=sheetname, index=False, header=False, startrow=ws.max_row+1) # 保存并关闭 writer 对象 writer.save() writer.close() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值