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

如何让Pandas DataFrame打印时索引不重复并导出为Excel文件

实现Pandas索引去重显示并导出Excel的方法

嘿,我刚好碰到过类似的需求,咱们一步步来解决:

一、控制台打印时隐藏重复索引

Pandas默认会把每一行的索引都显示出来,所以咱们需要用Styler工具来隐藏重复的索引值。直接上代码:

import pandas as pd

# 构造原始数据
li = [
    {"employee_id":1,"project_handled": "pas"},
    {"employee_id":1,"project_handled": "asap"},
    {"employee_id":2,"project_handled": "trimm"},
    {"employee_id":2,"project_handled": "fat"}
]
df = pd.DataFrame(li)
df.set_index("employee_id", inplace=True)

# 关键:标记重复索引并隐藏
styled_df = df.style.hide(axis='index', subset=df.index.duplicated())

# 打印格式化后的表格
print(styled_df.to_string())

这段代码的逻辑很简单:df.index.duplicated()会生成一个布尔数组,标记哪些行的索引是重复的;然后hide()方法会把这些重复的索引单元格内容隐藏,打印出来就是你想要的效果:

project_handled

employee_id
1 pas
asap
2 trimm
fat

二、导出Excel并保持该格式

直接导出原始DataFrame的话,Excel里还是会显示重复索引,所以咱们用刚才的styled_df来导出,需要依赖openpyxl引擎(提前用pip install openpyxl安装):

# 导出到Excel文件
styled_df.to_excel('employee_projects.xlsx', engine='openpyxl', index=True)

导出后的Excel文件里,重复的employee_id索引会被隐藏,和控制台显示的格式完全一致。如果想让表格更美观,还可以加个对齐样式:

# 可选:设置单元格左对齐,让内容更整齐
styled_df = styled_df.set_properties(**{'text-align': 'left'})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:27:34