在 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'])
我编写了一个函数,用于为 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'])