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

Pandas DataFrame是否支持rowspan或表格单元格合并功能?

实现Pandas表格的跨行单元格合并

要实现你想要的跨行单元格效果,Pandas原生DataFrame默认渲染不会自动合并重复的多层索引单元格,但可以通过以下两种方式达成目标:

1. 在Jupyter/HTML中实现视觉跨行合并(用Styler)

通过Styler自定义CSS样式,让重复的第一级索引单元格呈现跨行合并的视觉效果:

import pandas as pd

# 构造带多层索引的DataFrame
idx = pd.MultiIndex.from_tuples([('LCS', 'sequence1'), ('LCS', 'sequence2')], names=['', ''])
cols = pd.Index(['alignment', 'score', 'pathcoordinates'], name='')
data = [['AAAGT', '', ''], ['GGTAC', 5, '[4,5] -> [5,5]']]

df1 = pd.DataFrame(data, index=idx, columns=cols)

# 定义跨行合并的样式函数
def merge_index_cells(styler):
    idx_level_0 = df1.index.get_level_values(0)
    style_rules = []
    
    # 为重复索引行设置无边框,实现视觉合并
    for i in range(1, len(df1)):
        if idx_level_0[i] == idx_level_0[i-1]:
            style_rules.append({
                'selector': f'.row{i}',
                'props': [('vertical-align', 'middle'), ('border-bottom', 'none')]
            })
        else:
            style_rules.append({
                'selector': f'.row{i-1}',
                'props': [('border-bottom', '1px solid #ccc')]
            })
    
    # 为第一行和最后一行补充边框样式
    style_rules.extend([
        {'selector': '.row0', 'props': [('vertical-align', 'middle')]},
        {'selector': f'.row{len(df1)-1}', 'props': [('border-bottom', '1px solid #ccc')]}
    ])
    
    styler.set_table_styles(style_rules, overwrite=False)
    return styler

# 应用样式后展示表格
df1.style.pipe(merge_index_cells)

2. 导出到Excel时实现真实跨行合并

如果需要导出到Excel文件,可借助xlsxwriter引擎直接合并指定单元格:

# 导出到Excel并合并单元格
with pd.ExcelWriter('merged_lcs_table.xlsx', engine='xlsxwriter') as writer:
    df1.to_excel(writer, sheet_name='LCS_Result')
    workbook = writer.book
    worksheet = writer.sheets['LCS_Result']
    
    # 合并第一列第2-3行(对应LCS的跨行单元格)
    worksheet.merge_range('A2:A3', 'LCS')
    
    # 可选:设置单元格垂直居中
    cell_format = workbook.add_format({'valign': 'vcenter'})
    worksheet.set_row(1, None, cell_format)
    worksheet.set_row(2, None, cell_format)

两种方式分别对应交互式展示和文件导出场景,可根据需求选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:57:25