【问题标题】:Giving title to my different dataframes on excel sheet using python使用python在excel表上为我的不同数据框赋予标题
【发布时间】:2022-01-21 21:11:48
【问题描述】:

我在 Excel 工作表中有几个数据框,它们之间有 2 行空格,现在我想为这些 dfs 提供标题或描述。怎么可能?

将此函数用于多个dfs

# funtion
def multiple_dfs(df_list, sheets, file_name, spaces):
    writer = pd.ExcelWriter(file_name,engine='xlsxwriter')   
    row = 2
    for dataframe in df_list:
        dataframe.to_excel(writer,sheet_name=sheets,startrow=row , startcol=0)   
        row = row + len(dataframe.index) + spaces + 1
    writer.save()

# list of dataframes
dfs = [df,df1,df2]

# run function
multiple_dfs(dfs, 'Validation', 'test1.xlsx', 1)

【问题讨论】:

    标签: python excel pandas xlsxwriter


    【解决方案1】:

    您可以将您的描述包装在 Series 中,并以与数据框相同的方式编写:

    import pandas as pd
    import numpy as np
    
    def multiple_dfs(df_list, sheets, file_name, spaces, comments):
        writer = pd.ExcelWriter(file_name,engine='xlsxwriter')   
        row = 2
        for dataframe, comment in zip(df_list, comments):
            pd.Series(comment).to_excel(writer,sheet_name=sheets, startrow=row,
                                        startcol=1, index=False, header=False)
            dataframe.to_excel(writer,sheet_name=sheets,startrow=row + 1, startcol=0)   
            row = row + len(dataframe.index) + spaces + 2
        writer.save()
    
    # list of dataframes
    df = pd.DataFrame(np.arange(9).reshape(3,3))
    df1 = pd.DataFrame(np.arange(10, 19).reshape(3,3))
    df2 = pd.DataFrame(np.arange(20, 29).reshape(3,3))
    dfs = [df,df1,df2]
    comments = ['first', 'second', 'third']
    
    # run function
    multiple_dfs(dfs, 'Validation', 'test1.xlsx', 1, comments)
    


    根据评论更新:
    def multiple_dfs(df_list, sheets, spaces, comments):   
        row = 2
        for dataframe, comment in zip(df_list, comments):
            pd.Series(comment).to_excel(writer,sheet_name=sheets, startrow=row,
                                        startcol=1, index=False, header=False)
            dataframe.to_excel(writer,sheet_name=sheets,startrow=row + 1, startcol=0)   
            row = row + len(dataframe.index) + spaces + 2
    
    # list of dataframes and comments
    # ...
    
    # run function
    writer = pd.ExcelWriter('test1.xlsx',engine='xlsxwriter')
    multiple_dfs(dfs123, 'Validation1', 1, comments123)
    multiple_dfs(dfs456, 'Validation2', 1, comments456)
    writer.save()
    

    【讨论】:

    • 非常感谢!!我有两个类似的 excel 文件并将它们组合起来,我将这些文件作为 df1 和 df2 读取,然后我想: writer = pd.ExcelWriter('sheet1_sheet2.xlsx', engine='xlsxwriter') df1。 to_excel(writer, sheet_name='sheet1', index=False) df2.to_excel(writer, sheet_name='sheet2', index=False) writer.save() 但是如果我可以做其他事情来代替,你会吗?跨度>
    • 基本上,需要一个像 test1.xlsx 这样的 excel 文件,其中 df1,df2,df3 在名为 validation1 的工作表名称中,而 df4,df5,df6 在名为 validation2 的工作表名称中。
    • IIUC,您可以使用在multiple_dfs 之外创建的writer 实例,然后执行multiple_dfs(df123, 'Validation1', 'test1.xlsx', 1, comments123),然后执行multiple_dfs(df456, 'Validation2', 'test1.xlsx', 1, comments456)(即将writer = ...writer.save() 移出@987654332 @.
    • 我应该在哪里给 writer.save()?或者你可以在上面的代码中更新吗?
    • @newbie 查看更新
    猜你喜欢
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多