gpt4 book ai didi

python - 如何将多个数据框写入一张 Excel 工作表?

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:51 25 4
gpt4 key购买 nike

我知道如何将多个数据帧写入一个 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. 调整位置很困难,如果我需要左侧放置一个数据框,右侧垂直放置两个数据框怎么办?

PS:使用 pd.concat 只是不方便,因为需要付出很多努力才能使 Excel 看起来漂亮。

我还尝试使用可以分配startcolpd.ExcelWriter:

  1. 工作 1:

    file_name = 'xxx.xlsx'
    writer = pd.ExcelWriter(file_name, engine='xlsxwriter',
    datetime_format='yyyy-mm-dd',
    date_format='yyyy-mm-dd')
    df1.to_excel(writer, sheet_name=sheet_name, startrow=0 , startcol=0)
  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 位置写入数据帧而不覆盖文件?

最佳答案

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

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

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')

关于python - 如何将多个数据框写入一张 Excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com