如何编写Python代码,使用for循环和range函数,在每次迭代时将'SOC'值写入Excel的不同工作表(sheet)中,从第1张表开始,共覆盖6个sheet?
时间: 2024-10-25 18:03:51 浏览: 28
你可以使用pandas的`ExcelWriter`功能,结合`iterrows()`或者切片操作,以及`to_excel()`方法来实现。这里有一个示例,假设你已经有了一个名为`soc_data`的DataFrame,且它有'SOC'列:
```python
import pandas as pd
# 假设soc_data是一个包含'SOC'列的数据框
df_soc_data = pd.DataFrame({'SOC': [...], ...}) # 请替换为你的实际数据
# 创建一个ExcelWriter对象,指定输出文件名和模式(追加)
with pd.ExcelWriter('output.xlsx', engine='openpyxl', mode='a') as writer:
# 使用for循环遍历范围(从1到6,对应6个工作表)
for sheet_number in range(1, 7):
# 设置当前工作表名称
sheet_name = f'Sheet_{sheet_number}'
# 检查是否已经存在该工作表,若不存在则新建
if sheet_name not in writer.book.sheetnames:
df_soc_data.to_excel(writer, sheet_name=sheet_name, startrow=None, startcol=None, index=False)
# 如果工作表已存在,则仅写入新的'SOC'行
else:
# 假设你想要从第1行开始写入(如果有其他起始位置,可以调整这里的索引)
start_row = 1
df_soc_data.iloc[start_row:, :].to_excel(writer, sheet_name=sheet_name, startrow=start_row, startcol=None, index=False)
# 保存Excel文件
writer.save()
阅读全文