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

如何在Python Pandas中实现DataFrame表头的合并单元格效果?

实现DataFrame表头的Excel式合并单元格(含居中设置)

问题描述

我想要为DataFrame的表头实现类似Excel的合并单元格效果。目前已使用MultiIndex将文本置于表头列上方,代码如下:

sub_df_2.columns = pd.MultiIndex.from_tuples ( zip([Short_Mutation_Operator_Name, '', '', '', '', '' ,''], sub_df_2.columns))

请问该如何编写代码实现?另外是否可以让文本居中?文本居中为可选需求。

解决方案

1. 用MultiIndex实现表头"合并"视觉效果

pandas的MultiIndex会自动合并显示相同的顶层索引值,你只需要确保目标合并列的顶层索引名称一致即可。调整代码如下:

import pandas as pd

# 假设你要让前N列共享Short_Mutation_Operator_Name,其余列留空
# 示例:合并前3列,剩余列顶层索引为空
top_level = [Short_Mutation_Operator_Name] * 3 + [''] * (len(sub_df_2.columns) - 3)
# 构建多级列索引
sub_df_2.columns = pd.MultiIndex.from_tuples(zip(top_level, sub_df_2.columns))

这样在Jupyter Notebook或终端显示时,顶层相同名称的表头会自动合并呈现,和Excel合并单元格的视觉效果一致。

2. 设置表头文本居中

要让表头文本居中,需要借助Styler工具定制样式:

# 定义表头居中样式
def center_header(s):
    return ['text-align: center;' for _ in s]

# 应用样式到所有表头层级
styled_df = sub_df_2.style.apply(center_header, axis=0)

# 进一步优化顶层表头的合并显示样式(可选)
styled_df = styled_df.set_table_styles([
    {'selector': 'th.col_heading.level0', 'props': [('text-align', 'center')]},
    {'selector': 'th.col_heading.level1', 'props': [('text-align', 'center')]}
])

# 显示样式化后的DataFrame
display(styled_df)

# 若要导出到Excel,需提前安装openpyxl引擎
styled_df.to_excel('styled_dataframe.xlsx', engine='openpyxl')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:25:47