pandas 中将两个 DataFrame 分别导出到同一个 Excel 同一个工作表(sheet1)的 A1 单元格和 D1 单元格。
核心说明
pandas 的DataFrame.to_excel()方法无法直接实现将多个 DataFrame 写入同一个工作表的不同位置(该方法默认一个 DataFrame 对应一个工作表,或覆盖同一工作表内容),必须借助 openpyxl 引擎(处理.xlsx 格式文件)来实现精准定位写入。
完整实现步骤
步骤 1:安装依赖库
python
!pip install pandas openpyxl
步骤 2:完整代码实现
python
import pandas as pd
# 1. 准备两个测试DataFrame(你可替换为自己的真实数据)
df1 = pd.DataFrame({
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 32, 28]
})
df2 = pd.DataFrame({
'职业': ['工程师', '教师', '医生'],
'薪资': [15000, 8000, 20000],
'工作年限': [5, 10, 8]
})
# 2. 创建ExcelWriter对象,指定引擎为openpyxl(关键:支持同工作表多位置写入)
with pd.ExcelWriter('result.xlsx', engine='openpyxl') as writer:
# 3. 第一个DataFrame写入sheet1的A1单元格(startrow=0, startcol=0 对应A1,默认值可省略)
df1.to_excel(writer, sheet_name='sheet1',
startrow=0, # 起始行索引(从0开始,0对应第1行)
startcol=0, # 起始列索引(从0开始,0对应A列)
index=False # 不写入DataFrame的行索引,根据需求可改为True
)
# 4. 第二个DataFrame写入sheet1的D1单元格(D列对应列索引3,行索引0对应第1行)
df2.to_excel(writer,sheet_name='sheet1',
startrow=0, # 保持第1行(D1单元格)
startcol=3, # 关键:D列对应列索引3(A=0、B=1、C=2、D=3)
index=False # 不写入DataFrame的行索引,根据需求可改为True
)
关键参数解释
ExcelWriter的engine='openpyxl': 这是实现同工作表多位置写入的核心,openpyxl是处理.xlsx格式的专用引擎,支持工作表内的精准定位写入。若使用
.xls格式,需替换为engine='xlwt',但xlwt对新版 Excel兼容性较差,推荐优先使用.xlsx 格式。