Pandas多级索引透视表空值填充:补全所有行数据,无空值或合并单元格
解决方案
方案1:将多级索引转为普通列(最推荐,适配Excel计算需求)
你遇到的合并单元格效果是pandas多级索引(MultiIndex)的默认展示特性,直接导出到Excel时就会生成合并单元格。执行reset_index()把索引列转为普通数据列,即可自动补全所有行的索引值,不存在空值:
# 原有生成透视表的代码不变 tempTable = pd.pivot_table(newArr, values=['TotalTime', 'AvailTime'], margins = True, index=['UserID','Workgroup','Date'], aggfunc='sum') # 新增:重置索引,把索引列转为普通列 tempTable = tempTable.reset_index() # 导出Excel时关闭行号输出即可 tempTable.to_excel("结果表.xlsx", index=False)
该方案导出的Excel每一行都有完整的UserID、Workgroup、Date值,完全适配XLOOKUP等匹配类函数的运算规则,符合Excel数据存储的最佳实践。
方案2:保留索引结构,导出时禁止合并单元格
如果需要保留DataFrame的多级索引结构,仅需在调用导出方法时添加merge_cells=False参数,即可避免生成合并单元格,所有索引单元格都会自动填充对应值:
tempTable.to_excel("结果表.xlsx", merge_cells=False)
注意:该方案默认会导出pandas自带的行号列,如果不需要可以额外添加
index=False参数,添加后会自动丢弃索引列,该场景更推荐使用方案1。
内容的提问来源于stack exchange,提问作者max_settings
相关产品推荐
相关产品推荐

