113

DataFrame のリストを 1 つの Excel スプレッドシートにエクスポートするにはどうすればよいですか?
状態のドキュメントto_excel:


既存の ExcelWriter オブジェクトを渡す場合、シートは既存のワークブックに追加されます。これは、異なる DataFrame を 1 つのワークブックに保存するために使用できます。

writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()

これに続いて、次のように DataFrame のリストを 1 つのスプレッドシートに保存する関数を記述できると考えました。

from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
    writer = ExcelWriter(xls_path)
    for n, df in enumerate(list_dfs):
        df.to_excel(writer,'sheet%s' % n)
    writer.save()

ただし(それぞれが個別に保存できる2つの小さなデータフレームのリストがあるto_excel場合)、例外が発生します(編集:トレースバックが削除されました)

AttributeError: 'str' object has no attribute 'worksheets'

おそらく私はExcelWriter正しく呼び出していません。これを行うにはどうすればよいですか?

4

3 に答える 3

165

ExcelWriterパンダ独自のクラスを使用する必要があります。

from pandas import ExcelWriter
# from pandas.io.parsers import ExcelWriter

次に、save_xls関数は期待どおりに機能します。

def save_xls(list_dfs, xls_path):
    with ExcelWriter(xls_path) as writer:
        for n, df in enumerate(list_dfs):
            df.to_excel(writer,'sheet%s' % n)
        writer.save()
于 2013-01-08T23:27:40.787 に答える