在 python 的 applymap 中调用多参数函数

call multiple argument function in applymap in python

我编写了一个函数,用于为 pandas 数据框的变量赋予颜色。 在那里我使用了两个参数,第一个是变量列表,另一个是阈值列表(我在列表中只有两个值,例如 30 和 50)为变量和函数着色如下::

def color_code(val,values):
    if val <= values[0]:
       color = 'green'
    elif values[0]<val<=values[1]:
       color = 'yellow'
    elif val >values[1]:
       color = 'red'
    return 'background-color: %s' % color

现在我想调用这个 function.For 我尝试了以下方法。

df1=df.style.applymap(color_code,subset=['col1','col2'],values=[30,50])

但是上面的调用对我不起作用。

谁能帮我解决这个问题。

提前致谢。

你可以试试这个:

def color_code(values):
    def color_code_by_val(val):
        if val <= values[0]:
            color = 'green'
        elif values[0]<val<=values[1]:
            color = 'yellow'
        elif val >values[1]:
            color = 'red'
        return 'background-color: %s' % color
    return color_code_by_val

那么你的电话应该是:
df1=df.style.applymap(color_code([30,50]), subset=['col1','col2'])