Highlighting rows based on a condition(根据条件突出显示行)
本文介绍了根据条件突出显示行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个随机数据框,其中包含两列日期,我一直在尝试突出显示条件日期列表中存在开始日期的行。以下是我失败的尝试:
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文件中也能保持背景颜色的方法。谢谢!
推荐答案
我们可以结合使用np.where
和Series.isin
:
date_condition = ['2021-01-01 05:00:00', '2021-01-01 08:00:00',
'2021-01-01 02:00:00']
highlighted_rows = np.where(df['Start'].isin(date_condition),
'background-color: yellow',
'')
# Apply calculated styles to each column:
styler = df.style.apply(lambda _: highlighted_rows)
styler.to_excel('output.xlsx') # use styler to export to excel
# styler # to display in NoteBook
或isin
+Series.map
:
date_condition = ['2021-01-01 05:00:00', '2021-01-01 08:00:00',
'2021-01-01 02:00:00']
highlighted_rows = df['Start'].isin(date_condition).map({
True: 'background-color: yellow',
False: ''
})
# Apply calculated styles to each column:
styler = df.style.apply(lambda _: highlighted_rows)
styler.to_excel('output.xlsx') # use styler to export to excel
# styler # to display in NoteBook
在Excel中:
在Jupyter笔记本
这篇关于根据条件突出显示行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:根据条件突出显示行
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
基础教程推荐
猜你喜欢
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 筛选NumPy数组 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01