【发布时间】:2021-08-11 22:18:56
【问题描述】:
我有这个包含两列日期的随机数据框,我一直在尝试突出显示条件日期列表中存在开始日期的行。这是我失败的尝试:
import pandas as pd
import numpy as np
import datetime
df = pd.DataFrame({"Start": pd.date_range("1-jan-2021", periods=10, freq="1H")}).assign(**{"End": lambda d: d["Start"]+pd.Timedelta(hours=20)})
date_condition = ['2021-01-01 05:00:00','2021-01-01 08:00:00', '2021-01-01 02:00:00']
df = df.style.applymap(lambda x: 'background-color : yellow' if x['Start'] in date_condition)
由于我尝试使用 xlswriter 导出此数据框,因此我正在寻找一种即使在 excel 文件中也能保持背景颜色的方法。谢谢!
【问题讨论】:
-
无法将 pandas 显示选项应用于 excel 格式。这些是完全不同的东西,在
pd.DataFrame.to_excel方法中没有应用格式的机制,包括突出显示。相反,我会先查看options for applying formatting manually to excel workbooks,因为这将是最困难的部分。 -
那是不真实的。 pandas styler 有一个 to excel 函数
pandas.io.formats.style.Styler.to_excel,可以将 pandas 样式导出到 excel。 -
天啊。我的错!谢谢@HenryEcker!
标签: pandas conditional-formatting xlsxwriter pandas-styles