当我写这个问题时,我想出了一个实现。我已经决定发布它因为样式相对较新并且还没有那么多问题所以我希望它可能对其他人有用。我希望不会得到任何支持,并乐意接受其他人的实施。我在meta和this post中阅读了this post,所以希望我能说清楚。如果需要,我可以在下面提供我的实现。
我有一个每小时的时间序列,我按日平均分组。如果每小时数据中的值满足某个阈值,我想突出显示分组数据中的单元格。
例如,如果我的每日平均值是1并且我的阈值是< -1,我想强调每小时价值低于-1的日常工作。
我的每小时数据:
import pandas as pd
import numpy as np
from datetime import datetime
np.random.seed(24)
date = pd.date_range(start = datetime(2016,1,1), end = datetime(2016,2,1), freq = "H")
df = pd.DataFrame({'A': np.linspace(1, 100, len(date))})
df = pd.concat([df, pd.DataFrame(np.random.randn(len(date), 4), columns=list('BCDE'))],
axis=1)
df['date'] = date
df.set_index("date", inplace = True)
#My grouped data
day = df.groupby(pd.Grouper(freq='D')).mean()
做一些事情然后结果:
答案 0 :(得分:0)
我将回答我自己的问题,但我所拥有的是缓慢的,这不是一个交易破坏者,因为我不需要在很多数据上做,但如果存在更好的解决方案,我很乐意接受这个答案。
value = -1.06
grouped = df.groupby(pd.Grouper(freq= 'D'))
def highlight(val):
return 'background-color: green'
my_style = day.style
for column in day.columns:
for i in day[column].index:
data = grouped.get_group(i)[column]
if (data<value).any():
my_style = day.style.use(my_style.export()).applymap(highlight, subset = pd.IndexSlice[i,column])
my_style