多个数据框的列表以分隔Excel工作表 [英] List of multiple dataframes to separate Excel sheets

查看:79
本文介绍了多个数据框的列表以分隔Excel工作表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个可变长度的数据框列表,我想将每个数据框列表转换为每个excel工作表.

I have a list of dataframes of variable length, and I want to convert each list of dataframes to each excel sheet.

这是我的代码:

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工作表?

I got only the last list at my output. Is there any way I can convert all the lists to separatel Excel sheets?

我使用了您的建议如下:

I have used your suggestion as below:

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))

工作表名称已更改为我需要的名称.尽管每张纸的数据相似,但是会丢失某些数据内容,并且某些数据会在单张纸中合并,并且同一数据会在每张纸中重复. 有什么办法可以获取正确的输出.

Sheetnames are changed to the names, which I need. Whereas the data of every sheet is similar, some content of data is missed and some data is merged in the single sheet and same data is repeated in every sheet. Is there any way I can get the correct output.

很高兴听到一些建议.提前非常感谢您.

Pleased to hear some suggestions. Thank you very much in advance.

推荐答案

我认为您需要:

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()

如果需要写工作表名称的自定义名称:

If need write custom names of sheetnames:

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()

这篇关于多个数据框的列表以分隔Excel工作表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆