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