将带有样式的pandas数据框插入到现有的Excel工作表中

3

我看到了一些关于如何使用openpyxl将pandas DataFrame添加到现有工作表的答案,如下所示:

from openpyxl import load_workbook, Workbook
import pandas as pd

df = pd.DataFrame(data=["20-01-2018",4,9,16,25,36],columns=["Date","A","B","C","D","E"])
path = 'filepath.xlsx'

writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = load_workbook(path)
writer.sheets = dict((ws.title,ws) for ws in writer.book.worksheets)

df.to_excel(writer,sheet_name="Sheet1", startrow=2,index=False, header=False)
writer.save()

然而,我需要将背景数据设置为高亮颜色。有没有一种方法可以在不将数据框转换为列表的情况下实现这一点 - 并尝试保持日期格式呢?

谢谢

2个回答

2
你可以创建一个函数来在你想要的单元格中进行高亮显示。
def highlight_style():
    # provide your criteria for highlighting the cells here
    return ['background-color: red']

然后将你的高亮函数应用于数据框...
df.style.apply(highlight_style)

在此之后,当您将其写入Excel时,它应该按照您的意愿正常工作 =)

1
请注意,此功能仅适用于 pandas 版本 0.17.1 及以上版本。 - Andre Motta
谢谢您的回复!我尝试了您建议的方法,但是当我应用它并将数据框保存到Excel表格时,什么也没有发生。 - naturesenshi

1
我得到了Andre的帮助,成功进行了排序。你可以将结果导出为以下格式:
df.style.set_properties(**{'background-color':'red'}).to_excel(writer,sheet_name="Sheet1", startrow=2,index=False, header=False)
writer.save()

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接