pandas通过for sheet_name in sheet_names进行不覆盖sheet写入数据后保存的代码
时间: 2023-07-16 14:13:31 浏览: 121
可以使用 `ExcelWriter` 和 `openpyxl` 库来实现不覆盖sheet写入数据后保存的功能。具体代码如下:
```python
import pandas as pd
from openpyxl import load_workbook
# 创建一个ExcelWriter对象
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl')
# 读取已有的Excel文件
try:
# 加载Excel文件
book = load_workbook('output.xlsx')
# 将已有的sheet_name列表传递给ExcelWriter对象
writer.book = book
except FileNotFoundError:
# 如果文件不存在则创建一个新的Excel文件
pass
# 遍历sheet_names列表,逐个写入数据
for sheet_name in sheet_names:
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# 写入数据到指定的sheet_name中,不覆盖已有的sheet
df.to_excel(writer, sheet_name=sheet_name, index=False, startrow=0)
# 保存Excel文件
writer.save()
```
在上面的代码中,我们使用 `load_workbook` 函数加载已有的Excel文件,并将其传递给 `ExcelWriter` 对象。然后,我们使用 `to_excel` 方法将数据写入到指定的sheet中,并使用 `index=False` 和 `startrow=0` 参数控制写入数据的起始行和列。最后,我们使用 `save` 方法保存Excel文件。这样就可以实现不覆盖sheet写入数据后保存的功能了。
阅读全文