如何将多个数据帧写入一个excel工作表?

2024-04-25 09:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何在一个excel中将多个数据帧写入不同的工作表。

但现在我想在一个excel中横向地编写两个不同的数据帧。

例如:

enter image description here

我唯一知道的方法是

pd.concat((df1.reset_index() , df2.reset_index(), axis=1).to_excel('1.xlsx') 

但这不方便。

原因:

  1. 两个df会弄乱列的顺序,不得不做重排。在
  2. 必须重置索引(df1是日期时间索引,df2是自定义字符串索引),这将导致难看的表示。在
  3. 调整位置很困难,如果我需要一个数据帧在左边,两个数据帧垂直放置在右边呢?在

注:使用inconvenient只是为了使excel看起来更漂亮,需要付出很大的努力。

我还尝试使用pd.ExcelWriter,它可以分配startcol

  1. 工作1:

    ^{2美元
  2. 工作2

    file_name = 'xxx.xlsx'
    writer = pd.ExcelWriter(file_name, engine='xlsxwriter', 
                        datetime_format='yyyy-mm-dd',
                        date_format='yyyy-mm-dd')
    df2.to_excel(writer, sheet_name=sheet_name, startrow=0 , startcol=df1.shape[1]+2)
    

但这会覆盖excel。。。。

我希望有一种简单的方法可以在startrow, startcol位置编写一个数据帧,而不会使文件过度疲劳?


Tags: to数据方法nameindexxlsxexcelfile
1条回答
网友
1楼 · 发布于 2024-04-25 09:38:44

在df1和df2中用值作为行号创建列。这样您将保留两个数据帧的顺序。在

2)合并步骤1中创建的列上的两个数据帧

3)将此推送到excel

df1['key']= df1.reset_index().index

df2['key'] = df2.reset_index().index

pd.merge(df1, df2, how='outer',on='key').to_excel('1.xlsx') 

相关问题 更多 >