Используйте range
один для каждых 2 столбцов и один для параметра startcol
как:
import xlsxwriter
writer = pd.ExcelWriter('pandas_column_formats.xlsx',engine='xlsxwriter')
for col,st_col in zip(range(0,6,2), range(0,7,3)):
df.iloc[:,col:col+2].to_excel(writer, index=False, startcol=st_col)
writer.save()
writer.close()
Если у вас есть фреймы данных отдельно, то:
for df,st_col in zip([df1,df2,df3], range(0,7,3)):
df.to_excel(writer, index=False, startcol=st_col)
, который сохранит в Excel как: