pandas 尝试将背景色放入 Dataframe 列时出错

8yoxcaq7  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(105)

下面是我使用的 Dataframe :

我试过以下代码:

def color_red_or_green(val):
    color = 'green' if val >= 70 else 'orange' if val < 70 & val >= 40 else "red"
    return 'color: %s' % color
week2_Percentage.style.apply(color_red_or_green, subset = ['availability'])

它将列名availibility的条件Map为背景色,但出现以下错误:

1u4esq0p

1u4esq0p1#

apply函数根据其documentation执行“列方式、行方式或表方式”。在用于确定颜色的if else语句中,使用了整个列“availability”,因此一个序列中同时存在所有值,而不仅仅是单个值。
&的用法在这里不起作用,您需要使用and
您需要使用applymap来根据条件格式化单个元素,而不是apply:

def color_red_or_green(val):
    color = 'green' if val >= 70 else 'orange' if val < 70 and val >= 40 else "red"
    return 'color: %s' % color

df = pd.DataFrame(columns=["week", "availability"],
                       data=[[2, 10], [2, 100], [2, 60], [2, 70]])
df.style.applymap(color_red_or_green, subset = ['availability'])

相关问题