【问题标题】:to_excel() without index layoutto_excel() 没有索引布局
【发布时间】:2020-03-13 22:26:14
【问题描述】:

我正在使用 to_excel 将多个 DataFrames 写入多个 Excel 文档。这工作正常,只是数据帧的索引以粗体附加,每个单元格周围都有一个边框(见图)。

以下代码是我使用的代码的简化但有同样的问题:

import pandas as pd
from openpyxl import load_workbook

df = pd.DataFrame(np.random.randint(50,60, size=(20, 3)))

xls_loc = r'test_doc.xlsx'
wb = load_workbook(xls_loc)

writer = pd.ExcelWriter(xls_loc, engine='openpyxl') 
writer.book = wb

df.to_excel(writer, sheet_name='test sheet',index=True,startrow=1,startcol=1, header=False)

writer.save()
writer.close()

有没有办法在不使索引加粗和添加边框的情况下追加索引?

【问题讨论】:

    标签: python pandas dataframe openpyxl


    【解决方案1】:

    将索引设为新列,然后在to_excel() 中设置index=False

    df.insert(0, 'index', df.index)
    

    【讨论】:

    • 感谢您的回答,这确实也是我的想法,但我希望有一个不这样做的解决方案(我可以将其添加到问题中)。感觉 Pandas 给数据添加了一些格式有点随机。
    • 查看此讨论以评估如何更改格式以满足您的需求(但我认为新索引列的侵入性会较小):stackoverflow.com/questions/39892684/…
    【解决方案2】:

    您可以使用 xlwings 插入数据框以避免格式化:

    import pandas as pd
    import xlwings as xw
    
    df = pd._testing.makeDataFrame()
    
    with xw.App(visible=False) as app:
        wb = xw.Book()
        wb.sheets[0]["A1"].value = df
        wb.save("test.xlsx")
        wb.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多