我知道如何在一个Excel中将多个数据框写入不同的工作表。
但是现在我想水平地在一个excel中编写两个不同的数据框。
例如:
我唯一知道的方法是
pd.concat((df1.reset_index() , df2.reset_index(), axis=1).to_excel('1.xlsx')
但这不方便。
原因:
PS:使用inconvenient
只是 pd.concat
,因为需要付出很多努力才能使excel看起来很漂亮。
我还尝试使用pd.ExcelWriter
来分配startcol
:
工作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
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
上写入数据帧而又不会浪费文件?
答案 0 :(得分:0)
在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')