如何用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
相关产品推荐
相关产品推荐

