我有一个简单的DataFrame,由A、B和C三列组成.这些列可以包含不同的值(文本),但有时会包含单词‘Alarm’.根据"Alarm"在一行中出现的次数,我想给整行涂上 colored颜色 . 问题:它总是用相同的 colored颜色 给整个数据帧上色.
下面是重现数据帧的代码:
data = {'A': ['ALARM', 'ALARM', 'krish', 'Peter'],
'B': ['Tom', 'ALARM', 'krish', 'ALARM'],
'C': ['Jack', 'ALARM', 'krish', 'ALARM'],}
df = pd.DataFrame(data)
下面是我用来给这个框架上色的代码:
def num_alarms(series):
red = 'background-color: red;'
orange = 'background-color: orange;'
yellow = 'background-color: yellow;'
green = 'background-color: green;'
return [red if num == 3 else orange if num == 2 else yellow if num == 1 else green for e
in series]
for index, row in df.iterrows():
num = (df == 'ALARM').sum(axis = 1)[index]
s = df.style.apply(num_alarms, axis = 'index', subset = slice(index))
display(s)
注意:我一直在用一个笔记本电脑.