【问题标题】:pandas multiindex style highlight a row熊猫多索引样式突出显示一行
【发布时间】:2020-11-01 03:33:51
【问题描述】:

如何为以下泰坦尼克号数据中的 class= 第三行着色:

import numpy as np
import pandas as pd
import seaborn as sns

df = sns.load_dataset('titanic')
df.groupby(['sex', 'class']).agg({'fare': ['sum','count']})

参考文献

官方的例子只处理简单的数据框,但是这里我要强调多索引 数据框。我想知道如何完成任务。

必填

我想要两行,其中 class= 第三男性和女性是红色的。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果你在其他索引中没有子字符串'Third',你可以这样做:

    df.groupby(['sex', 'class']).agg({'fare': ['sum','count']}).style.apply(lambda ser: ['background: lightblue' if 'Third' in ser.name else '' for _ in ser],axis=1)
    

    【讨论】:

      【解决方案2】:

      我已经更喜欢https://stackoverflow.com/users/5200329/bhishan-poudel 的回答了,但是如果你想要一个基于我在你的样式链接上读到的解决方案,下面可以工作:

      def color_third_red(val):
          return [('color: red' if 'Third' in x else 'color: black') for x in val.index]
      
      gdf = df.groupby(['sex', 'class']).agg({'fare': ['sum','count']})
      
      s = gdf.style.apply(color_third_red,axis=0)
      

      s 看起来像:

      【讨论】:

        猜你喜欢
        • 2018-10-10
        • 1970-01-01
        • 1970-01-01
        • 2020-05-25
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 2016-10-16
        • 2019-01-19
        相关资源
        最近更新 更多