You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python操作Excel:写入出现序列表头/数据无法写入首行问题咨询

问题解答

1. 为什么写入Excel时会出现类似[0,1,2,...]的行作为表头?

其实原因很简单:你读取文件时用了header=None,这会让Pandas不给DataFrame设置自定义列名,而是自动分配默认的整数索引(0、1、2...)。而默认情况下,df.to_excel()会把DataFrame的列名当成表头写入Excel——这些整数索引就被输出成了那行[0,1,2,...]的表头。

2. 如何让DataFrame第一行直接写入Excel第1行,不生成表头?

只需要在to_excel()里加个header=False参数就行!这个参数会告诉Pandas不要把列名(那些默认的整数索引)写入表头行。修改后的完整代码如下:

# 读取文件,header=None表示不将原Excel第一行识别为表头
df = pd.read_excel("DataName.xlsx", sheet_name=0, header=None)
# 修改B1单元格(对应DataFrame的第0行第1列)
df.iloc[0,1] = "my text"
# 初始化Excel写入器
writer = pd.ExcelWriter(mypath, engine='xlsxwriter')
# 导出时关闭行索引和表头
df.to_excel(writer, sheet_name=new_sheet, index=False, header=False)
# 务必保存并关闭写入器,否则文件可能无法正常生成
writer.close()

这里再补充两个关键参数的作用:

  • index=False:防止把DataFrame的行索引(0、1、2...)写入Excel的第一列
  • header=False:防止把DataFrame的列名(0、1、2...)写入Excel的第一行

这样调整后,你的DataFrame第一行就会直接对应Excel的第1行,完全满足你的需求~

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

火山引擎 最新活动