如何让Pandas按多层索引分组后所有行重复展示各级索引值?
Pandas多索引全量显示解决方案
方案1:单次临时生效
仅针对当前输出调整,不影响全局配置,推荐使用上下文管理器实现:
res = df.groupby([pd.Grouper(level=1), "A"]).sum() # 仅在with代码块内生效 with pd.option_context('display.multi_sparse', False): print(res)
执行后输出效果如下,second层级索引会在每一行完整显示:
B second A one 1 2 one 2 4 one 3 6 two 1 4 two 2 5 two 3 7
方案2:全局配置生效
如果需要所有多索引默认都全量显示,修改全局配置项即可:
# 开启全量显示多索引值 pd.set_option('display.multi_sparse', False)
需要恢复默认合并显示效果时,执行以下代码即可:
pd.set_option('display.multi_sparse', True)
配置说明:
display.multi_sparse是Pandas控制多索引/多列名显示的核心参数,默认值为True,即仅在索引值变化时展示对应层级内容,修改为False后会在每一行完整展示所有层级的索引值。
内容的提问来源于stack exchange,提问作者Mark Miller
相关产品推荐
相关产品推荐

