Напишите несколько панелей данных, чтобы преуспеть - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь написать несколько панд dataframes, которые я извлек из большого набора данных в несколько рабочих листов книги Excel.Проблема заключается в том, что он записывает только первый кадр данных, т. Е. index[0], поэтому итоговая рабочая книга имеет только одну рабочую таблицу, см. sheet1 ниже.Чего мне не хватает?Это воссоздание моей проблемы.

Код:

import pandas as pd
from pandas import ExcelWriter

df_list = []
a = pd.DataFrame({'A':[1,2,3,4,5,6,7,8,9], 'B':[10,11,12,13,14,15,16,17,18]})
b = pd.DataFrame({'C':[11,22,33,44,55,66,77,88,99], 'D':[105,117,128,139,140,153,166,176,188]})

df_list.append(a)
df_list.append(b)

writer = ExcelWriter('test_output.xlsx')
for n, df in enumerate(df_list):
    df.to_excel(writer, 'sheet%s' % str(n + 1))
    writer.save()

Лист1:

    A   B
0   1   10
1   2   11
2   3   12
3   4   13
4   5   14
5   6   15
6   7   16
7   8   17
8   9   18

1 Ответ

0 голосов
/ 13 мая 2018

Вам нужно позвонить writer.save() после конструкции for.

После вызова этого метода объект writer будет эффективно закрыт, и вы не сможете использовать его для записи дополнительных данных.

writer = ExcelWriter('test_output.xlsx')
for n, df in enumerate(df_list):
    df.to_excel(writer, 'sheet%s' % str(n + 1))
writer.save()
...