如何保存Pandas多级索引DataFrame且不重复显示索引?
实现多级索引DataFrame保存CSV时重复索引不显示
当你用set_index设置多级索引后,控制台会自动隐藏重复的索引值,但to_csv默认会每行输出完整索引。要实现和控制台一致的效果,需要手动处理重复索引值,步骤如下:
- 将多级索引转回普通列
先重置索引,让原本的索引列变成DataFrame的普通列:
df_reset = df.reset_index()
- 替换重复的索引值为空字符串
对每个索引列,判断当前行值是否和上一行相同,相同则替换为空:
# 处理Object列的重复值 df_reset['Object'] = df_reset['Object'].where(df_reset['Object'] != df_reset['Object'].shift(), '') # 处理Color列的重复值 df_reset['Color'] = df_reset['Color'].where(df_reset['Color'] != df_reset['Color'].shift(), '')
- 保存处理后的DataFrame为CSV
此时不需要保存默认索引,直接输出处理后的内容:
df_reset.to_csv('file.csv', index=False)
注意:CSV是纯文本格式,本身不支持类似Excel的合并单元格功能,这种方式是通过将重复索引值设为空,来模拟控制台的显示效果。
内容的提问来源于stack exchange,提问作者Tutu
相关产品推荐
相关产品推荐

