pandas.io.formats.style.Styler.hide#

Styler.hide(subset=None, axis=0, level=None, names=False)[源代码][源代码]#

隐藏整个索引 / 列标题,或隐藏特定的行 / 列。

Added in version 1.4.0.

参数:
子集label, 类似数组, IndexSlice, 可选

根据 axis ,在 DataFrame.loc[<subset>, :]DataFrame.loc[:, <subset>] 中输入有效的 1d 输入或沿轴的单个键,以将 data 限制为选择隐藏的行 / 列。

{“index”, 0, “columns”, 1}

应用于索引或列。

级别int, str, list

在隐藏整个索引/列标题时,要隐藏的 MultiIndex 中的级别。不能与 subset 同时使用。

名称bool

是否在索引/列标题的级别名称(或至少一个级别)保持可见的情况下隐藏它们。

返回:
Styler

备注

警告

此方法仅适用于输出方法 to_htmlto_stringto_latex

其他输出方法,包括 to_excel ,忽略这种隐藏方法,并将显示所有数据。

此方法根据 subsetlevelnames 参数的组合具有多种功能(见示例)。axis 参数仅用于控制方法是否应用于行或列标题:

参数组合#

subset

level

names

效果

None

None

False

轴索引被完全隐藏。

None

None

只有轴索引名称被隐藏。

None

Int, Str, List

False

指定的轴-MultiIndex 级别完全隐藏。

None

Int, Str, List

指定的轴-MultiIndex 级别完全隐藏,剩余轴-MultiIndex 级别的名称。

子集

None

False

指定的数据行/列被隐藏,但轴索引本身及其名称保持不变。

子集

None

指定的数据行/列和轴索引名称被隐藏,但轴索引本身保持不变。

子集

Int, Str, List

布尔值

ValueError: 不能同时提供 subsetlevel

注意此方法仅隐藏已识别的元素,因此可以链式调用来按顺序隐藏多个元素。

例子

简单应用程序隐藏特定行:

>>> df = pd.DataFrame([[1, 2], [3, 4], [5, 6]], index=["a", "b", "c"])
>>> df.style.hide(["a", "b"])  
     0    1
c    5    6

隐藏索引并保留数据值:

>>> midx = pd.MultiIndex.from_product([["x", "y"], ["a", "b", "c"]])
>>> df = pd.DataFrame(np.random.randn(6, 6), index=midx, columns=midx)
>>> df.style.format("{:.1f}").hide()  
                 x                    y
   a      b      c      a      b      c
 0.1    0.0    0.4    1.3    0.6   -1.4
 0.7    1.0    1.3    1.5   -0.0   -0.2
 1.4   -0.8    1.6   -0.2   -0.4   -0.3
 0.4    1.0   -0.2   -0.8   -1.2    1.1
-0.6    1.2    1.8    1.9    0.3    0.3
 0.8    0.5   -0.3    1.2    2.2   -0.8

在 MultiIndex 中隐藏特定行但保留索引:

>>> df.style.format("{:.1f}").hide(subset=(slice(None), ["a", "c"]))
... 
                         x                    y
           a      b      c      a      b      c
x   b    0.7    1.0    1.3    1.5   -0.0   -0.2
y   b   -0.6    1.2    1.8    1.9    0.3    0.3

通过链式操作隐藏特定行和索引:

>>> df.style.format("{:.1f}").hide(subset=(slice(None), ["a", "c"])).hide()
... 
                 x                    y
   a      b      c      a      b      c
 0.7    1.0    1.3    1.5   -0.0   -0.2
-0.6    1.2    1.8    1.9    0.3    0.3

隐藏特定级别:

>>> df.style.format("{:,.1f}").hide(level=1)  
                     x                    y
       a      b      c      a      b      c
x    0.1    0.0    0.4    1.3    0.6   -1.4
     0.7    1.0    1.3    1.5   -0.0   -0.2
     1.4   -0.8    1.6   -0.2   -0.4   -0.3
y    0.4    1.0   -0.2   -0.8   -1.2    1.1
    -0.6    1.2    1.8    1.9    0.3    0.3
     0.8    0.5   -0.3    1.2    2.2   -0.8

仅隐藏索引级别名称:

>>> df.index.names = ["lev0", "lev1"]
>>> df.style.format("{:,.1f}").hide(names=True)  
                         x                    y
           a      b      c      a      b      c
x   a    0.1    0.0    0.4    1.3    0.6   -1.4
    b    0.7    1.0    1.3    1.5   -0.0   -0.2
    c    1.4   -0.8    1.6   -0.2   -0.4   -0.3
y   a    0.4    1.0   -0.2   -0.8   -1.2    1.1
    b   -0.6    1.2    1.8    1.9    0.3    0.3
    c    0.8    0.5   -0.3    1.2    2.2   -0.8

所有这些示例都会在使用 axis="columns" 时产生相同的效果。