如何在Dash DataTable中显示Pivot DataFrame的int_id_ait索引?
解决Dash DataTable不显示多级索引
int_id_ait的问题 核心原因
Dash DataTable默认仅识别DataFrame的普通列,不会自动渲染多级索引的外层字段(比如int_id_ait),需要先将索引转换为普通列再进行渲染。
具体解决方案
将多级索引转为普通列
使用reset_index()方法把透视表的多级索引(int_id_ait和int_desc)转换为表格的普通列:# 转换索引为列 dati_prev_pivot = dati_prev_pivot.reset_index()扁平化多级列名(可选但推荐)
由于pd.pivot生成的透视表列是多级结构(tariffa+prog_anno),直接渲染可能导致列名显示混乱,建议扁平化处理:# 把多级列名合并为单一级别 dati_prev_pivot.columns = ['_'.join(col).strip() for col in dati_prev_pivot.columns.values]处理后列名会变成类似
int_id_ait、int_desc、tariffa_2021、tariffa_2022的形式,更易识别。在Dash DataTable中渲染
转换后的DataFrame可以直接传入Dash DataTable,此时int_id_ait会作为普通列显示:import dash_table dash_table.DataTable( data=dati_prev_pivot.to_dict('records'), columns=[{'name': col, 'id': col} for col in dati_prev_pivot.columns], # 可添加样式、分页等其他配置 )
内容的提问来源于stack exchange,提问作者Daniela Baratta
相关产品推荐
相关产品推荐

