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

时间:2018-10-13 16:01:05

标签: python pandas python-applymap

我编写了一个函数,用于为熊猫数据框的变量赋予颜色。 在那里我使用了两个参数,第一个是变量列表,另一个是阈值列表(我在列表中只有两个值,例如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

现在我要调用此函数。为此,我尝试了以下操作。

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

但上述通话对我不起作用。

谁能帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

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'])