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

如何将含多级分类的Pandas DataFrame转换为层级化展示表格?

Pandas实现层级化表格展示

原始数据集

import pandas as pd
df = pd.DataFrame({
    'Category': ['A', 'A', 'A', 'B', 'B', 'B', 'B'],
    'SubCategory': ['A01', 'A02', 'A02', 'B01', 'B01', 'B02', 'B03'],
    'SubSubCategory': ['AA01', 'AA02', 'AA03', 'BB01', 'BB02', 'BB03', 'BB04'],
    'ProductID': [1001, 1002, 1003, 1004, 1005, 1006, 1007]
})

原始输出

CategorySubCategorySubSubCategoryProductID
AA01AA011001
AA02AA021002
AA02AA031003
BB01BB011004
BB01BB021005
BB02BB031006
BB03BB041007

需求

将上述数据转换为层级化合并单元格的表格样式(相同上级分类自动合并,形成嵌套层级)

解决方案

通过Pandas的多级索引和样式设置实现:

# 设置多级索引,按分类层级排序
hierarchical_df = df.set_index(['Category', 'SubCategory', 'SubSubCategory'])

# 配置表格样式,实现单元格合并与层级缩进
styled_table = hierarchical_df.style.set_table_styles([
    # 基础样式
    {'selector': 'th, td', 'props': [('border', '1px solid #ccc'), ('text-align', 'left')]},
    # 层级0(Category)样式:加粗下边框,居中对齐
    {'selector': '.level0', 'props': [('border-bottom', '2px solid #000'), ('vertical-align', 'middle'), ('font-weight', 'bold')]},
    # 层级1(SubCategory)样式:缩进,下边框
    {'selector': '.level1', 'props': [('border-bottom', '1px solid #000'), ('padding-left', '20px')]},
    # 层级2(SubSubCategory)样式:更深缩进
    {'selector': '.level2', 'props': [('padding-left', '40px')]}
])

# 隐藏默认索引列,只保留层级化的表头和数据
styled_table = styled_table.hide(axis='index')

# 显示表格(Jupyter环境中直接运行即可查看效果)
styled_table

效果说明

运行上述代码后,相同的Category和SubCategory会自动合并单元格,同时通过缩进区分层级,完全匹配需求的展示样式。若需要导出为HTML文件,可使用styled_table.to_html('hierarchical_table.html')保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:36:20