python - 使用样式和 css 更改 pandas 数据框 html 表 python 中文本的颜色

标签 python html css pandas dataframe

我有一个 Pandas 数据框:

arrays = [['Midland', 'Midland', 'Hereford', 'Hereford', 'Hobbs','Hobbs', 'Childress',
           'Childress', 'Reese', 'Reese', 'San Angelo', 'San Angelo'],
          ['WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples)
df = pd.DataFrame(np.random.randn(12, 4), index=arrays,
                  columns=['00 UTC', '06 UTC', '12 UTC', '18 UTC'])

打印 df 的表如下所示:enter image description here

我想为“MOS”行中的所有值涂上某种颜色,并为左侧的两个索引/标题列以及顶部标题行涂上与其他具有值的单元格不同的背景颜色他们。我有什么想法可以做到这一点吗?

最佳答案

使用 Pandas 新styling功能(从 0.17.1 开始):

import numpy as np
import pandas as pd

arrays = [['Midland', 'Midland', 'Hereford', 'Hereford', 'Hobbs','Hobbs', 'Childress',
           'Childress', 'Reese', 'Reese', 'San Angelo', 'San Angelo'],
          ['WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples)
df = pd.DataFrame(np.random.randn(12, 4), index=arrays,
                  columns=['00 UTC', '06 UTC', '12 UTC', '18 UTC'])


def highlight_MOS(s):
    is_mos = s.index.get_level_values(1) == 'MOS'
    return ['color: darkorange' if v else 'color: darkblue' for v in is_mos]

s = df.style.apply(highlight_MOS)
s

enter image description here

关于python - 使用样式和 css 更改 pandas 数据框 html 表 python 中文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38511373/

相关文章:

python - 如何方便地禁用打印语句以便pythonw可以运行?

python - 使用 for 循环将两个列表中的数据插入到字典中

javascript - setTimeout 不起作用,在 for 循环中排队的其他方法?

css - 无法正确放置 HTML5 slider 输出

python - 通过 Web 访问独立的 GUI 应用程序

python - 反转字符串 Python 切片表示法

javascript - 使用 javascript 创建动态内容的最佳方式?

html - 如何使用CSS水平居中div和span元素

css - 禁用 LESS-CSS 覆盖 calc()

带边框的 CSS 三 Angular 形