Я знаю, как написать несколько фреймов данных на разных листах в одном Excel.
Но теперь я хочу написать два разных фрейма данных в одном Excel по горизонтали.
Например:

Единственный известный мне способ
pd.concat((df1.reset_index() , df2.reset_index(), axis=1).to_excel('1.xlsx')
Но это не удобно.
Причина:
- concat, два df испортили бы порядок столбцов, нужно сделать порядок вручную.
- придется сбросить индекс (df1 - индекс даты и времени, df2 - индекс пользовательской строки), что приведет к уродливому представлению.
- Регулировать положение сложно, что если мне понадобится один кадр данных слева и два кадра вертикально вертикально?
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)
Но это перезаписывает исключениеel ....
Надеюсь, есть простой способ записать кадр данных в положение startrow, startcol
без перезаписи файла?