【问题标题】:Copying multiple python dataframes into excel using StyleFrame's to_excel method使用 StyleFrame 的 to_excel 方法将多个 python 数据框复制到 excel 中
【发布时间】:2018-10-13 10:25:02
【问题描述】:

我有多个数据框,df1、df2 等。每个数据框包含不同数量的列和行。使用 StyleFrame 库,是否可以通过指定单元格位置使用 to_excel 方法将所有数据帧一一复制到 Excel 文件中的单个工作表中?目前,这就是我正在做的事情:

将 df1 写入 Excel 文件的 Sheet1

writer = StyleFrame.ExcelWriter("filename")
sf1 = StyleFrame(df1)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf1.to_excel(writer, sheet_name='Sheet1')

将 df2 写入 Excel 文件的 Sheet1

writer = StyleFrame.ExcelWriter("filename")
sf2 = StyleFrame(df2)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf2.to_excel(writer, sheet_name='Sheet1')    #Incorrectly overwrites df1 data in the excel

writer.save()
writer.close()

但是,sf2.to_excel() 方法会覆盖 excel 中的 df1 数据。我正在寻找的是从单元格位置开始复制 df1 数据,比如“A2”,在 Sheet1 中,然后从位置开始复制 sf2 数据,比如“B31”,在同一张表中等等。

【问题讨论】:

    标签: excel python-3.x pandas styleframe


    【解决方案1】:

    是的。就像pandas.to_excel 支持startrowstartcol 参数一样,StyleFrame.to_excel 也是如此。

    API 与pandas 的几乎相同: 您需要创建一个excel_writer 对象,在两个样式框架上调用to_excel,然后调用excel_writer.save

    from StyleFrame import StyleFrame, Styler
    
    sf1 = StyleFrame({'a': [1]}, Styler(bg_color='yellow'))
    sf2 = StyleFrame({'b': [1]}, Styler(bg_color='blue'))
    
    excel_writer = StyleFrame.ExcelWriter('test.xlsx')
    sf1.to_excel(excel_writer)
    sf2.to_excel(excel_writer, startcol=3, startrow=2)  # both are zero-based
    excel_writer.save()
    

    输出

    【讨论】:

    • 完美!这正是我一直在寻找的。谢谢。令人惊讶的是,我在库的文档中找不到 startcol 和 startrow - link
    • @viks_python 确实有点被忽视了,我更新了文档 - styleframe.readthedocs.io/en/latest/…
    猜你喜欢
    • 2015-10-27
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2021-11-20
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多