导出pandas DataFrame到xlsx前如何在列名上方添加3个空行
实现方案
你之前的操作之所以达不到预期,是因为将空行插入到了DataFrame本身的数据集中,导出Excel时列名会固定放在表格最顶部,空行只会出现在列名和实际数据之间。
这个需求可以通过pandas内置的to_excel()方法的startrow参数快速实现,不需要修改原DataFrame结构:
import pandas as pd # 此处替换为你自己的DataFrame对象 df = pd.DataFrame({'列1': [1,2,3], '列2': [4,5,6]}) # 导出时指定startrow=3,即从第4行(Excel行号从1开始)开始写入内容,前3行自动留空 with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer: df.to_excel(writer, index=False, startrow=3)
如果运行提示缺少openpyxl依赖,执行
pip install openpyxl安装即可。
参数说明:
startrow:接受整数,代表写入Excel时的起始行偏移量,默认值为0(从第一行开始写),设置为3就会在列名上方空出3行。
如果需要在前面的空白行中添加自定义内容(比如表头说明、标题等),可以直接操作工作表对象实现:
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer: df.to_excel(writer, index=False, startrow=3) # 获取工作表对象,默认工作表名为Sheet1,可根据实际情况修改 ws = writer.sheets['Sheet1'] # 示例:在第1行第1列写入表格标题 ws.cell(row=1, column=1, value='表格标题')
内容的提问来源于stack exchange,提问作者Raúl Casado
相关产品推荐
相关产品推荐

