使用样式突出显示单个列

2024-05-29 10:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个pandas数据框,然后我想将background-color:red添加到数据框中任何选定的列,并用html显示数据框和突出显示的列。你知道吗

我的桌子形状如下:

import pandas as pd
import numpy as np

np.random.seed(24)
frame = pd.DataFrame({'A': np.linspace(1, 10, 10)})
frame = pd.concat([frame, pd.DataFrame(np.random.randn(10, 12), 
columns=list('BCDEFGHIJKLM'))],axis=1)

我在另一个类似问题的stackoverflow页面上找到了这个函数,但失败了:

(尝试按位置查找列)

def highlighter(col):
    r = 'background-color: red'
    df1 = pd.DataFrame('', index=col.index, columns=col.columns)
    df1.iloc[:, 8] = r
    return df1
tab = frame.style.apply(highlighter, axis=None).render()    
print(tab) 

这是我创建的另一个函数,但也失败了:

(尝试通过调用特定列名来查找列)

def highlighter(df, col):
    df = pd.DataFrame()
    return ['background-color:red' if col in df.columns else 'background-color:white']

tab = frame.style.apply(highlighter(col='C'), axis=None).render()
print(tab)

当我打印呈现的表时,表应该有一个背景色为红色的列,但我看不到这样的突出显示


Tags: columns数据dataframedfnpcolredframe
1条回答
网友
1楼 · 发布于 2024-05-29 10:31:07

试试这个:

def highlighter(col):
    r = 'background-color: red'
    df1 = pd.DataFrame('', index=col.index, columns=col.columns)
    df1.iloc[:, 8] = r
    return df1
tab = frame.style.apply(highlighter, axis=None)

with open('tab.html', 'w') as html:
    html.write(tab.render())

enter image description here

相关问题 更多 >

    热门问题