如何突出显示数据框中的特定行? [重复]

问题描述 投票:0回答:2

例如,我希望能够在数据框中以绿色突出显示前 17 行。我已经看到了有关如何根据列值突出显示行的答案,但无论列中的值如何,都没有像行那么简单。我不关心行中的值。

TLDR:我只是希望能够将数据框中的前 17 行着色为绿色。

谢谢您的帮助!

python pandas dataframe row highlight
2个回答
1
投票
df.style.applymap(lambda _: "background-color: green", subset=(df.index[:17],))

我们用一个元组对样式区域进行子集化,表示我们选择行(如果元组被剥离,它将它们解释为列名称)。请注意,我们不能直接在那里写入

range(17)
,因为并非所有数据帧都有默认的 RangeIndex (0, 1 ...)。由于我们并不真正关心单元格中的值,而是行索引本身,因此在着色函数中使用
_
来表示忽略这一点。

前 N 行的概括:

# Color first N rows
N, color = 17, "lightgray"
df.style.applymap(lambda _: f"background-color: {color}", subset=(df.index[:N],))

特定行的概括:

# Color specific rows
rows_to_color = [0, 4, 5, 12]
color = "lightgray"
df.style.applymap(lambda _: f"background-color: {color}",
                  subset=(df.index[rows_to_color],))

1
投票

一个选项是

apply
背景颜色
subset
行上:

color = "lime"
N = 7 # adjust here

(
    df.style.apply(
        lambda _: [f"background-color: {color}"]*N,
        subset=pd.IndexSlice[:N])
)

输出:

使用的输入:

np.random.seed(0)

df = pd.DataFrame(
    {"col1": np.random.randn(10),
     "col2": np.random.randn(10),
     "col3": np.random.randn(10)
    }
)
© www.soinside.com 2019 - 2024. All rights reserved.