【问题标题】:How to highlight each unique string value differently in a single column in Pandas dataframe?如何在 Pandas 数据框中的单个列中以不同方式突出显示每个唯一字符串值?
【发布时间】:2020-07-21 13:26:30
【问题描述】:

我在 Pandas 中有一个数据框,我想让它对用户更具可读性。有很多列/行以及字符串和浮点数的混合。

我有一个列,我们称之为“类型”,它有大约 5 个唯一可能的值,比如“水果”、“蔬菜”、“豆类”、“液体”、“肉类”。

我希望始终突出显示“水果”,比如说“黄色”。 “蔬菜”应始终具有“绿色”等背景色。

如何在 Pandas 中生成这种样式?

我遇到了很多问题,因为这不是一个典型的用例(大多数样式都假设整数/浮点数被突出显示)。

我尝试过使用 applymap,但似乎无法弄清楚如何让它突出显示字符串并且仅在单个列中。

谢谢!

【问题讨论】:

    标签: python pandas styling


    【解决方案1】:

    使用styling system

    def styler(col):
        # We only want to apply style to the Type column
        if col.name != 'Type':
            return [''] * len(col)
    
        bg_color = col.map({
            'Fruit': 'yellow',
            'Vegetable': 'green',
            'Liquid': 'rgb(0,0,255)',
        }).fillna('') # a fallback for fruits we haven't colorized
        return 'background-color:' + bg_color
    
    df.style.apply(styler)
    

    颜色值使用CSS Colors specs

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      相关资源
      最近更新 更多