使用pandas导出Excel数据时如何去除输出结果前的行号
问题说明
需要实现的逻辑:用pandas读取Excel文件,提取指定列数据按规则排序后取Top5结果,保存为文本文件后展示在单页网站。
原有实现代码:
dataTopDivision = pd.read_excel("files/Volleybal_Topdivisie_tussenstand.xlsx") dataTopDivision1 = dataTopDivision[['datum', 'team1', 'team2', 'uitslag', 'scheidsrechter', 'overtredingen']] data_sorted = dataTopDivision1.sort_values("overtredingen", ascending=False) top5 = data_sorted.head(5) blackbook = open("files/examples/zwartboek.txt", "w", encoding="UTF-8") blackbook.write(bamboo.prettify(top5)) blackbook.close()
当前异常:网站可以正常加载展示Top5数据,但每一行数据前会附带多余的数字行号,需要移除。
解决方法
数据前的多余行号是pandas DataFrame默认自带的行索引,所有DataFrame转格式化文本的方法,都支持通过参数控制是否输出这部分索引。
- 如果用pandas原生的
to_string()方法做文本格式化,只需要在调用时传入index=False即可隐藏行号,修改后的文件写入代码如下:
with open("files/examples/zwartboek.txt", "w", encoding="UTF-8") as blackbook: blackbook.write(top5.to_string(index=False))
用with上下文管理器操作文件会自动处理文件关闭逻辑,比手动调用close()更稳妥,能避免文件写入异常。
- 如果你要保留
bamboo.prettify()的格式化效果,直接给这个方法也传入index=False参数即可,对应写法为bamboo.prettify(top5, index=False),同样可以去掉前置行号。
内容的提问来源于stack exchange,提问作者lellebel
相关产品推荐
相关产品推荐

