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

如何在同一DataFrame中合并表头B对应的多列单元格?

解决表格表头合并问题

问题分析

你需要将表格中Header B、Unnamed:1、Unnamed:2、Unnamed3四列的表头统一为Header B并实现合并显示,np.concatenation不适合处理这类表格结构与样式调整,推荐用pandas来完成。

代码实现步骤

  1. 构造/读取数据
    先把你的数据转换成pandas.DataFrame:
import pandas as pd

data = {
    'Header A': ['Ship Mode', 'Order ID', 'order 1', 'order 2'],
    'Header B': ['First Class', '', 20.00, 40.00],
    'Unnamed:1': ['Second Class', '', 30.00, 30.00],
    'Unnamed:2': ['Third Class', '', 40.00, 40.00],
    'Unnamed3': ['Premium', '', 50.00, 50.00],
    'Header C': ['-', '', 'sum', 'sum']
}
df = pd.DataFrame(data)
  1. 修改列名
    将所有Unnamed开头的列名替换为Header B:
df.columns = ['Header A', 'Header B', 'Header B', 'Header B', 'Header B', 'Header C']
  1. 实现表头合并样式
    用pandas.Styler设置表头合并的显示效果:
def merge_header(styler):
    # 调整表头边框,模拟合并效果
    styler.set_table_styles([
        {'selector': 'th.col_1, th.col_2, th.col_3, th.col_4',
         'props': [('text-align', 'center')]},
        {'selector': 'th.col_1',
         'props': [('border-right', 'none')]},
        {'selector': 'th.col_2, th.col_3',
         'props': [('border-left', 'none'), ('border-right', 'none')]},
        {'selector': 'th.col_4',
         'props': [('border-left', 'none')]}
    ])
    styler.set_properties(**{'text-align': 'center'})
    return styler

# 应用样式并显示
styled_table = df.style.pipe(merge_header)
styled_table

最终效果(HTML表格实现)

如果需要直接生成符合需求的HTML表格,可以用以下代码输出:

# 生成合并表头的HTML
html_table = """
<div class="s-table-container">
<table class="s-table">
<thead>
<tr>
<th>Header A</th>
<th colspan="4">Header B</th>
<th>Header C</th>
</tr>
<tr>
<th></th>
<th>First Class</th>
<th>Second Class</th>
<th>Third Class</th>
<th>Premium</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Order ID</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>order 1</td>
<td>20.00</td>
<td>30.00</td>
<td>40.00</td>
<td>50.00</td>
<td>sum</td>
</tr>
<tr>
<td>order 2</td>
<td>40.00</td>
<td>30.00</td>
<td>40.00</td>
<td>50.00</td>
<td>sum</td>
</tr>
</tbody>
</table>
</div>
"""

print(html_table)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:20:44