startrow
звучит как ваше решение:
start_row = 0
for key, values in dd.iteritems():
df = dd[key]['chart_data']
df.to_excel(writer, sheet_name='Sheet 1', index=False, startrow=start_row)
# Edited to respect your requirement for 1 blank row
# after each df
start_row = start_row + len(df) + 1 # or df.shape[0] et cetera
Он просто выбирает, в какую строку начинать демпинг. Вы также можете указать startcol
, который работает по тому же принципу, но я думаю, что он работает как есть.
Редактировать: другой, возможно, лучший способ - concat
. Что-то вроде:
df = pd.concat([dd[key]["chart_data"] for key, values in dd.iteritems()])
df.to_excel(...)
Но это сработает, только если ваш df
поместится в памяти.