“新手学软件,两眼一抹黑”系列第3弹
pandas.ExcelWriter,保存表格时不想让第一行加粗怎么办
从Excel文件中读取数据,进行一些处理后,保存为一个新的Excel文件。
原数据(xls或xlsx文件)格式如下:

虽然这里的第一行是变量名,但有时使用的其他表格中没有变量名,是纯数字。
读取原数据(默认读取第一个sheet):
sheet_old = pd.read_excel(r"D:\demo.xlsx")
进行一些处理,比如替换一些关键字:
sheet_new = sheet_old.replace('北京市', '北京')
要另存为新的xlsx文件:
sheet_new.to_excel(r"D:\demo2.xlsx")
看一下输出的格式:

不太满意,如果不想要最左侧这一列自动添加的索引编号,就将保存命令改为:
sheet_new.to_excel(r"D:\demo2.xlsx", index=False)
此时输出的格式:

第一行的自动加粗,是因为读取表格时,默认将第一行视为标签。
如果数据里没有标签,则读取表格时的命令需要修改。
sheet_old = pd.read_excel(r"D:\demo.xlsx", header=None)
sheet_new = sheet_old.replace('北京市', '北京')
sheet_new.to_excel(r"D:\demo2.xlsx", index=False)
此时出现了新问题,由于没有标签,所以自动生成了列的索引并且加粗了,不是我要的格式:

查询pandas的官网说明页面,对于pandas.ExcelWriter的介绍:pandas.ExcelWriter — pandas 2.0.2 documentation (pydata.org)
然而,并没有相应的说明。
经过自己摸索,能加一个参数,虽然官网里没写能这么干:
sheet_old = pd.read_excel(r"D:\demo.xlsx", header=None)
sheet_new = sheet_old.replace('北京市', '北京')
sheet_new.to_excel(r"D:\demo2.xlsx", index=False, header=None)
最后的输出结果,符合自己的需求,保持原数据的样式:

文章讲述了在使用pandas处理Excel数据时,如何避免保存表格时第一行自动加粗的问题。通过设置`header=None`和`index=False`参数,可以防止读取时将第一行视为标签并加粗,同时去除自动添加的索引列。

2538

被折叠的 条评论
为什么被折叠?



