5

我正在尝试dataframes将从较大的数据集中提取的多个熊猫写入 excel 工作簿的多个工作表中。问题是它只写入第一个数据帧 ie 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
4

1 回答 1

9

您需要在构造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()
于 2018-05-13T10:15:48.910 回答