将多个 pandas 数据帧写入 excel

Write multiple pandas dataframes to excel

我正在尝试将从较大的数据集中提取的多个 pandas 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

您需要在 for 构造之后调用 writer.save()

调用此方法后,writer对象将被有效关闭,您将无法使用它写入更多数据。

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