如何对Pandas DataFrame分组并输出分组样式的HTML表格
实现步骤
要生成带合并分组样式的HTML表格,核心是先为DataFrame配置多级索引,导出HTML时开启单元格合并参数即可,具体操作如下:
1. 构造示例原始数据(可替换为你的实际数据)
import pandas as pd # 模拟基础数据,分组维度为「大区-省份」,和示例场景匹配 raw_df = pd.DataFrame({ '大区': ['华东', '华东', '华东', '华北', '华北', '华南'], '省份': ['上海', '江苏', '浙江', '北京', '河北', '广东'], '销售额(万元)': [1200, 980, 850, 1100, 720, 1300], '同比增速': [12.5, 8.2, 9.6, 10.3, 7.8, 14.1] })
2. 配置分组索引
把需要作为分组维度的列设置为多级行索引,后续导出时会自动合并同组的相同值:
grouped_df = raw_df.set_index(['大区', '省份'])
如果需要做多列表头的分组,可使用pivot_table生成多级列索引:
# 示例:按「年份-指标」做列分组 pivot_df = raw_df.pivot_table( index='省份', columns=['年份', '指标'], values='数值', aggfunc='sum' )
3. 导出为分组样式HTML
调用to_html方法时开启merge_cells参数,即可自动生成带合并单元格的HTML表格:
html_content = grouped_df.to_html( merge_cells=True, # 核心参数:合并相同索引的单元格 border=1, justify='center', encoding='utf-8' ) # 可直接导出为HTML文件 with open('分组表格.html', 'w', encoding='utf-8') as f: f.write(html_content)
生成的HTML会自动为相同分组的单元格添加rowspan/colspan属性,渲染效果和你示例的分组表格一致,如需调整样式可以给to_html传入classes参数自定义CSS样式。
内容的提问来源于stack exchange,提问作者Joker
相关产品推荐
相关产品推荐

