我有一个可变长度的数据框列表,我想将每个数据框列表转换为每个excel工作表。
这是我的代码:

for i in range(1, len(dfs)):
    frames = {'sheetName_i' : dfs[i]}
for sheet, df in frames.items():
    dfs[i].to_excel(writer, index=False)
#df is the whole dataframe whereas dfs is the list of df

我的输出只有最后一个列表。
有什么方法可以将所有列表转换为单独的Excel表吗?
我采纳了你的建议如下:
for i, df in enumerate(dfs, 1):
   for n in group: #containe the names that I want to name the sheets amd the names equal to the number of sheets.
       df.to_excel(writer, index=False, sheet_name=n.format(i))

床单名改成我需要的名字。然而,每一张表的数据是相似的,有些数据内容被遗漏,有些数据被合并到一张表中,而相同的数据在每一张表中重复。
有什么办法我可以得到正确的输出。
很高兴听到一些建议。提前非常感谢。

最佳答案

我认为你需要:

writer = pd.ExcelWriter('output.xlsx')
for i, df in enumerate(dfs, 1):
    #python 3.6+
    df.to_excel(writer, index=False,sheet_name=f'sheetName_{i}')
    #below python 3.6
    #df.to_excel(writer, index=False,sheet_name='sheetName_{}'.format(i))
writer.save()

样品:
df = pd.DataFrame({
        'A':list('abcdef'),
         'B':[4,5,4,5,5,4],
         'C':[7,8,9,4,2,3],
         'D':[1,3,5,7,1,0],
         'E':[5,3,6,9,2,4],
         'F':list('aaabbb')
})

#sample list of DataFrames
dfs = [df[['A','B']], df[['A','B','C']],df[['A','F']]]

writer = pd.ExcelWriter('output.xlsx')
for i, df in enumerate(dfs, 1):
    #python 3.6+
    df.to_excel(writer, index=False,sheet_name=f'sheetName_{i}')
    #below python 3.6
    #df.to_excel(writer, index=False,sheet_name='sheetName_{}'.format(i))
writer.save()

编辑:
如果需要,请编写图纸名的自定义名称:
writer = pd.ExcelWriter('output.xlsx')
names = ['a','d','b']
for df, n in zip(dfs, names):
    #python 3.6+
    df.to_excel(writer, index=False,sheet_name=f'sheetName_{n}')
    #below python 3.6
    #df.to_excel(writer, index=False,sheet_name='sheetName_{}'.format(n))
writer.save()

07-24 09:52
查看更多