python + pandas - выгрузить df, чтобы преуспеть в цикле - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть диктат с сотнями панд.

Я хочу перебрать каждый df в dict и вывести его в excel, все на одном листе, один за другим с 1 пустой строкой между ними.

Моя попытка:

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
workbook = writer.book

for key, values in dd.iteritems():
    df = dd[key]['chart_data']
    df.to_excel(writer, sheet_name='Sheet 1', index=False)

writer.save()
workbook.close()

Я думаю, это перезаписывает DFS.

Есть предложения?

1 Ответ

0 голосов
/ 16 ноября 2018

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 поместится в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...