【问题标题】:Pandas highlight rows based on index namePandas 根据索引名称突出显示行
【发布时间】:2019-04-08 13:23:13
【问题描述】:

我一直在努力研究如何根据索引名称设置高亮 pandas 行的样式。我知道如何突出显示选定的行,但是当我必须根据索引突出显示时,代码不起作用。

设置

df = pd.DataFrame({'key': list('ABCD'), 'value': range(4)})
print(df)
  key  value
0   A      0
1   B      1
2   C      2
3   D      3

当键值为“B”或“D”时突出显示行

# this works

    df.style.apply(lambda x: ['background: lightgreen' 
                                          if (x.key == 'B' or x.key == 'D')
                                      else '' for i in x], axis=1)

根据索引名称突出显示行

# This DOES NOT work
df1 = df.set_index('key')
df1.style.apply(lambda x: ['background: lightgreen' 
                                      if (x.index == 'B' or x.index == 'D')
                                      else '' for i in x], axis=1)

如何根据索引名称突出显示行?

【问题讨论】:

    标签: python pandas pandas-styles


    【解决方案1】:

    index 更改为name

    df1.style.apply(lambda x: ['background: lightgreen' 
                                      if (x.name == 'B' or x.name == 'D')
                                      else '' for i in x], axis=1)
    

    【讨论】:

    • 当我们有一个名为 'name' 的列时该怎么办?
    • @astro123 - 然后选择x['name']
    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2021-11-06
    • 2015-08-04
    • 2018-10-10
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多