You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas将不同DataFrame的列数据按指定垂直格式排列?

解决方法

你当前代码用pd.concat([df1, df2], axis=0)的问题在于,它是按行拼接并对齐列名,结果会把两个DataFrame的所有列合并成7列,df1的行里df2的列值会显示为NaN,df2的行里df1的列值也会显示为NaN,这显然不是你要的垂直格式效果。

根据常见的“垂直放置两个独立表格”的需求,你可以用ExcelWriter分块写入Excel,让df1和df2分别占据上下两个区域:

import pandas as pd

df1 = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['A', 'B', 'C'],
    'col3': [4.5, 6.7, 8.9],
    'col4': ['X', 'Y', 'Z']
})

df2 = pd.DataFrame({
    'col5': ['apple', 'banana', 'cherry'],
    'col6': [10, 20, 30],
    'col7': [True, False, True]
})

# 分块写入Excel,实现上下独立表格的效果
with pd.ExcelWriter('output.xlsx') as writer:
    # 先写入df1,从第1行开始(startrow=0对应Excel的A1单元格)
    df1.to_excel(writer, sheet_name='Sheet1', startrow=0, index=False)
    # 再写入df2,从df1的行数+2的位置开始(空一行分隔两个表格,更清晰)
    df2.to_excel(writer, sheet_name='Sheet1', startrow=len(df1) + 2, index=False)

如果你的“垂直格式”是其他需求(比如把两个DataFrame的列按顺序合并后数据连续排列),需要明确具体格式,但目前最符合常规需求的就是上面的分块写入方案。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:00:12