如何使用Pandas脚本在Excel表头上方添加顶部标题
解决Pandas在Excel表头上方添加顶部标题的问题
问题原因
你当前的代码已经正确创建了包含顶部标题的多级索引表头,但没有将这个新表头赋值给原DataFrame,最后保存的还是未修改表头的df_new,所以Excel中看不到顶部标题。
修正后的完整代码
import os import pandas as pd # 切换工作目录 os.chdir("/dev/alb_shrd/alb/alb_prj/Files/albt/alt/scrpts") # 读取CSV文件 col_names = ["Sl_No", "Departure", "Arrival"] df_new = pd.read_csv( "SourceFile.csv", quotechar='"', names=col_names, sep="|", skiprows=1, low_memory=False, error_bad_lines=False, header=None ).dropna(axis=1, how="all") # 创建包含顶部标题的多级表头 header = pd.MultiIndex.from_product([["TOP TITLE"], df_new.columns]) # 将新表头赋值给DataFrame df_new.columns = header # 保存到带时间戳的Excel文件 file = f"SourceFile_{pd.Timestamp('now').strftime('%Y%m%d_%I%M')}.xlsx" df_new.to_excel(file, index=False)
关键改动说明
- 移除了无意义的
df_new.head()和临时生成DataFrame的代码,直接将创建好的多级索引header赋值给df_new.columns,让原DataFrame使用新表头。 - 保存Excel时,
to_excel会自动识别多级表头,在Excel中呈现为顶部标题(第一行)+ 原列名(第二行)的格式。
效果验证
打开生成的Excel文件后,表头会显示为两行:
- 第一行整行显示
TOP TITLE(自动合并单元格) - 第二行显示原列名
Sl_No、Departure、Arrival
内容的提问来源于stack exchange,提问作者Jenifer
相关产品推荐
相关产品推荐

