如何在Pandas中将DataFrame数据写入Excel指定单元格?
Pandas指定DataFrame写入Excel的具体单元格方法
直接使用df.to_excel("output.xlsx")的参数只能设置整个DataFrame的起始单元格(通过startrow和startcol参数),无法单独指定每一行的写入位置。要实现行1写入A1、行2写入A4这类分散位置的需求,需要借助pd.ExcelWriter配合支持精准写入的引擎(如openpyxl或xlsxwriter),以下是具体实现方式:
方法1:用openpyxl引擎逐行指定起始位置
先确保安装openpyxl:
pip install openpyxl
示例代码:
import pandas as pd # 示例DataFrame df = pd.DataFrame({ 'Col1': ['Data1', 'Data2'], 'Col2': ['Value1', 'Value2'] }) with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer: # 第一行写入A1(startrow=0对应Excel第1行,startcol=0对应A列) df.iloc[[0]].to_excel(writer, startrow=0, startcol=0, index=False, header=False) # 第二行写入A4(startrow=3对应Excel第4行) df.iloc[[1]].to_excel(writer, startrow=3, startcol=0, index=False, header=False)
iloc[[0]]提取DataFrame的第一行,index=False和header=False避免写入索引和表头startrow和startcol是0-based索引,对应Excel中行/列的1-based编号减1
方法2:用xlsxwriter引擎直接写入指定单元格
先确保安装xlsxwriter:
pip install xlsxwriter
示例代码:
import pandas as pd # 示例DataFrame df = pd.DataFrame({ 'Col1': ['Data1', 'Data2'], 'Col2': ['Value1', 'Value2'] }) with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer: worksheet = writer.sheets['Sheet1'] # 直接指定Excel单元格坐标写入整行 worksheet.write_row('A1', df.iloc[0].tolist()) worksheet.write_row('A4', df.iloc[1].tolist())
write_row方法支持直接使用Excel风格的单元格坐标(如'A1'),将行数据转为列表后写入
内容的提问来源于stack exchange,提问作者joeinreallife
相关产品推荐
相关产品推荐

