gpt4 book ai didi

pandas - 根据条件突出显示行

转载 作者:行者123 更新时间:2023-12-02 16:08:17 25 4
gpt4 key购买 nike

我有一个包含两列日期的随机数据框,我一直在尝试突出显示条件日期列表中存在开始日期的行。这是我失败的尝试:

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 中:

styled spreadsheet

在 Jupyter 笔记本中

styled table

关于pandas - 根据条件突出显示行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68749539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com