gpt4 book ai didi

基于字符串数据的 Pandas Styling(背景 + 字体)——有更好的方法吗?

转载 作者:行者123 更新时间:2023-12-04 15:54:54 25 4
gpt4 key购买 nike

我可以将用于背景颜色的 lambda 函数和用于字体颜色的 lambda 函数组合成一个 lambda 函数吗?这将用于具有大量不同样式的非常大的数据框,因此最好将代码减少一半。

欢迎提出更好的建议

# raw data
df = pd.DataFrame({'Name':['name1', 'name2', 'name3', 'name1', 'name2', 'name3', 'name1', 'name2', 'name3' ],
'Rotation':['ER','PEDI','MAM','PEDI', 'ERJD','PEDI','JMAM','ERSN','ABD']})

#style
df = df.style.apply(lambda x: ["background-color: green" if 'ER' in v else "" for v in x], axis = 1)\
.apply(lambda x: ["color: orange" if 'ER' in v else "" for v in x], axis = 1)\
.apply(lambda x: ["background-color: red" if 'MAM' in v else "" for v in x], axis = 1)\
.apply(lambda x: ["color: yellow" if 'MAM' in v else "" for v in x], axis = 1)

结果 df 如下所示:

styled df

最佳答案

我会做这样的事情(Python 3.6+ for f-strings):

def where(x):
bg = ['green', 'red']
fg = ['orange', 'yellow']
ls = ['ER', 'MAM']
for i, y in enumerate(ls):
if y in x:
return f"background-color: {bg[i]}; color: {fg[i]}"
return ''

df.style.applymap(where)

关于基于字符串数据的 Pandas Styling(背景 + 字体)——有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com