You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Pandas将多个DataFrame写入Excel同工作表的不同行?

将多个Pandas DataFrame写入同一张Excel工作表的不同行

嘿,我来帮你搞定这个需求——把多个DataFrame放到同一张Excel工作表的不同行,而不是分散在不同工作表里。这里有两种实用的方法,你可以根据自己的需求来选:

方法1:用startrow参数精准控制位置

这个方法适合你想给不同DataFrame之间留空行、或者精确控制每个块起始位置的场景。核心是利用to_excel()的startrow参数,指定每个DataFrame开始写入的行号:

import pandas as pd

# 你的原始DataFrame生成逻辑
df8 = pd.DataFrame(item1(doc)) 
df9 = pd.DataFrame(item2(doc)) 
df10 = pd.DataFrame(item3(doc)) 

# 初始化ExcelWriter
writer = pd.ExcelWriter('m1.xlsx', engine='xlsxwriter')

# 第一个DataFrame从第0行开始(默认位置)
df8.to_excel(writer, sheet_name='combined', startrow=0)

# 第二个DataFrame从df8的行数+2行开始(留1行空行分隔,更易读)
# 设置header=False避免重复写入列名
df9.to_excel(writer, sheet_name='combined', startrow=len(df8) + 2, header=False)

# 第三个DataFrame从df9的结束行+2行开始
df10.to_excel(writer, sheet_name='combined', startrow=len(df8) + len(df9) + 4, header=False)

# 保存文件
writer.save()

关键细节:

  • startrow:指定DataFrame写入的起始行索引(从0开始计数)
  • header=False:如果后续DataFrame和第一个列名一致,关闭重复列名的写入
  • 加空行(len(df8)+2)是为了让不同模块的数据更清晰,你也可以根据需要调整间隔行数

方法2:合并DataFrame后一次性写入

如果不需要复杂的位置控制,只是想简单把多个DataFrame堆叠起来,直接用pd.concat()合并后写入更简洁:

import pandas as pd

df8 = pd.DataFrame(item1(doc)) 
df9 = pd.DataFrame(item2(doc)) 
df10 = pd.DataFrame(item3(doc)) 

# 合并所有DataFrame,ignore_index=True重置行索引
combined_df = pd.concat([df8, df9, df10], ignore_index=True)

writer = pd.ExcelWriter('m1.xlsx', engine='xlsxwriter')
combined_df.to_excel(writer, sheet_name='combined')
writer.save()

进阶:给每个DataFrame加标题分隔

如果想在每个DataBlock前加个标题(比如"item1"、"item2"),可以手动插入标题行和空行:

import pandas as pd

def create_title_row(title):
    # 创建一个只有标题的单行DataFrame
    return pd.DataFrame({'': [title]})

df8 = pd.DataFrame(item1(doc)) 
df9 = pd.DataFrame(item2(doc)) 
df10 = pd.DataFrame(item3(doc)) 

# 组装所有部分:标题+数据+空行
content_parts = [
    create_title_row('item1'),
    df8,
    pd.DataFrame(),  # 空行分隔
    create_title_row('item2'),
    df9,
    pd.DataFrame(),
    create_title_row('item3'),
    df10
]

# 合并所有部分
combined_df = pd.concat(content_parts, ignore_index=True)

writer = pd.ExcelWriter('m1.xlsx', engine='xlsxwriter')
combined_df.to_excel(writer, sheet_name='combined', index=False)
writer.save()

最后提醒一下:确保你已经安装了xlsxwriter引擎,如果没装的话,执行pip install xlsxwriter即可。

内容的提问来源于stack exchange,提问作者Programmer_nltk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:16:21