如何使用pd.style.apply多条件设置DataFrame,实现正数加+前缀并标红
Pandas Styler同时实现change列正数加+前缀与红色字体的方案
pandas的Styler对象支持链式调用,数值显示格式和CSS样式是两个独立的配置维度,分别调用对应方法即可同时生效,不会丢失样式。
import pandas as pd import numpy as np # 示例数据 my_df = pd.DataFrame({'name': ['John', 'Jorge', 'Igor'], 'rank2020':[2,1,3], 'rank2021':[1,3,2], 'change':[1,-2,1]}) # 链式调用实现两个效果 styled_df = my_df.style.format( # 配置change列的显示格式,正数前加+ formatter={"change": lambda x: f"+{x}" if x > 0 else str(x)} ).apply( # 配置change列的字体颜色,正数标红 lambda x: np.where(x > 0, 'color:red', ''), subset='change' ) # 直接返回styled_df即可查看最终效果
format方法仅修改单元格的显示文本,不会修改原始DataFrame的数值,也不会破坏Styler对象的属性,你可以放心在样式设置前/后调用。- 两个方法的调用顺序不影响最终效果,你也可以先调用
apply设置颜色,再调用format设置前缀。
内容的提问来源于stack exchange,提问作者Prolle
相关产品推荐
相关产品推荐

